)]}'
{"shade/__init__.py":[{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"bc4443645b62edeaaa5059902b7c5928e3dff1b6","unresolved":false,"context_lines":[{"line_number":641,"context_line":"            the openstack API call."},{"line_number":642,"context_line":"        \"\"\""},{"line_number":643,"context_line":"        roles \u003d self.list_roles()"},{"line_number":644,"context_line":"        return _utils._filter_list(roles, name_or_id, filters)"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    def get_role(self, name_or_id, filters\u003dNone):"},{"line_number":647,"context_line":"        \"\"\"Get exactly one Keystone role."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_eefe8f6a","line":644,"updated":"2015-06-15 19:38:17.000000000","message":"Getting  a list and filtering in client side is inefficient. Better approach would be to pass the filter to keystone and let it filter since it supports filter.\n\ne.g  We can do   GET /v3/roles?name\u003droleName\n\nI believe we follow the same client side filtering  pattern everywhere, it is not a big problem for role, but we can\u0027t do the same client side filtering for   users as there will be 100\u0027s  of user.  E.g consider Keystone connected to LDAP backend with 100s of users.  Listing users from LDAP will take forever.","commit_id":"7709a63302ce1730a70cd9cec0b5d51354cdbfdc"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"d3b7a7890733c953db80eb297387cc72880d7294","unresolved":false,"context_lines":[{"line_number":641,"context_line":"            the openstack API call."},{"line_number":642,"context_line":"        \"\"\""},{"line_number":643,"context_line":"        roles \u003d self.list_roles()"},{"line_number":644,"context_line":"        return _utils._filter_list(roles, name_or_id, filters)"},{"line_number":645,"context_line":""},{"line_number":646,"context_line":"    def get_role(self, name_or_id, filters\u003dNone):"},{"line_number":647,"context_line":"        \"\"\"Get exactly one Keystone role."}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_d6bd0bb8","line":644,"in_reply_to":"fa32b979_eefe8f6a","updated":"2015-06-17 12:38:21.000000000","message":"Yah - doing pushdown conditions is a thing that\u0027s on the list to do.","commit_id":"7709a63302ce1730a70cd9cec0b5d51354cdbfdc"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"bc4443645b62edeaaa5059902b7c5928e3dff1b6","unresolved":false,"context_lines":[{"line_number":664,"context_line":"            self, role_name_or_id, user_name_or_id,"},{"line_number":665,"context_line":"            domain_name_or_id\u003dNone, project_name_or_id\u003dNone):"},{"line_number":666,"context_line":"        role \u003d self.get_role(role_name_or_id)"},{"line_number":667,"context_line":"        user \u003d self.get_user(user_name_or_id)"},{"line_number":668,"context_line":"        if domain_name_or_id:"},{"line_number":669,"context_line":"            domain_id \u003d self.get_domain(domain_name_or_id).id"},{"line_number":670,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_ce1ceb15","line":667,"updated":"2015-06-15 19:38:17.000000000","message":"This will not work for v3. get_user requires domain_name  and name is unique only within its enclosing domain.\nDomainA - User1\nDomainB - User1\n\nget_user(name\u003dUser1) doesn\u0027t know which domain","commit_id":"7709a63302ce1730a70cd9cec0b5d51354cdbfdc"},{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"d3b7a7890733c953db80eb297387cc72880d7294","unresolved":false,"context_lines":[{"line_number":664,"context_line":"            self, role_name_or_id, user_name_or_id,"},{"line_number":665,"context_line":"            domain_name_or_id\u003dNone, project_name_or_id\u003dNone):"},{"line_number":666,"context_line":"        role \u003d self.get_role(role_name_or_id)"},{"line_number":667,"context_line":"        user \u003d self.get_user(user_name_or_id)"},{"line_number":668,"context_line":"        if domain_name_or_id:"},{"line_number":669,"context_line":"            domain_id \u003d self.get_domain(domain_name_or_id).id"},{"line_number":670,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_f6c28f33","line":667,"in_reply_to":"fa32b979_ce1ceb15","updated":"2015-06-17 12:38:21.000000000","message":"Oh goodie. :) K- thanks!","commit_id":"7709a63302ce1730a70cd9cec0b5d51354cdbfdc"},{"author":{"_account_id":220,"name":"Haneef Ali","email":"haneef.ali@hp.com","username":"haneef"},"change_message_id":"bc4443645b62edeaaa5059902b7c5928e3dff1b6","unresolved":false,"context_lines":[{"line_number":671,"context_line":"            domain_id \u003d None"},{"line_number":672,"context_line":"        if project_name_or_id:"},{"line_number":673,"context_line":"            project_id \u003d self.get_project(project_name_or_id).id"},{"line_number":674,"context_line":"        else:"},{"line_number":675,"context_line":"            project_id \u003d None"},{"line_number":676,"context_line":"        return dict("},{"line_number":677,"context_line":"            role\u003drole.id, user\u003duser.id,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_8eed83f1","line":674,"updated":"2015-06-15 19:38:17.000000000","message":"get_project has same problem as get_user","commit_id":"7709a63302ce1730a70cd9cec0b5d51354cdbfdc"}]}
