)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     J. Matt Peterson \u003cJmatt@jmatt.org\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-05-03 16:56:50 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fixes: bug #1175356"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Future implementations of keystone API v3 will support server-side"},{"line_number":10,"context_line":"filtering using key/value attributes. See:"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2FhoI%3D","line":7,"updated":"2013-05-06 21:04:33.000000000","message":"See https://wiki.openstack.org/wiki/GitCommitMessages. Provide a title line like \n\n Refactor to support filtering","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":18,"context_line":"document exactly which attributes will work. An example of a working attribute is:"},{"line_number":19,"context_line":"keystone.users.list(name\u003d\"someone\")"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"\tmodified:   keystoneclient/v3/endpoints.py"},{"line_number":22,"context_line":"\tmodified:   keystoneclient/v3/groups.py"},{"line_number":23,"context_line":"\tmodified:   keystoneclient/v3/projects.py"},{"line_number":24,"context_line":"\tmodified:   keystoneclient/v3/roles.py"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2FhoY%3D","line":21,"updated":"2013-05-06 21:04:33.000000000","message":"remove these.","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":24,"context_line":"\tmodified:   keystoneclient/v3/roles.py"},{"line_number":25,"context_line":"\tmodified:   keystoneclient/v3/users.py"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Amended per Dolph Mathews comments. Added comments to all affected list"},{"line_number":28,"context_line":"methods and name keywords for groups, projects, roles and users."},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"Change-Id: I148093fbe37700f890ed44148aa3f63f34ee5ff5"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2FhoU%3D","line":27,"updated":"2013-05-06 21:04:33.000000000","message":"remove this paragraph.","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"}],"keystoneclient/v3/groups.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            domain_id\u003dbase.getid(domain),"},{"line_number":56,"context_line":"            description\u003ddescription)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def list(self, user\u003dNone, **kwargs):"},{"line_number":59,"context_line":"        if user:"},{"line_number":60,"context_line":"            base_url \u003d \u0027/users/%s\u0027 % base.getid(user)"},{"line_number":61,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmE0%3D","line":58,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dNone","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        else:"},{"line_number":62,"context_line":"            base_url \u003d None"},{"line_number":63,"context_line":"        return super(GroupManager, self).list("},{"line_number":64,"context_line":"            base_url\u003dbase_url,"},{"line_number":65,"context_line":"            **kwargs)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def get(self, group):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmEo%3D","line":64,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dname,","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b014f61ab753e3b4dec256f089847c8ef9657492","unresolved":false,"context_lines":[{"line_number":55,"context_line":"            domain_id\u003dbase.getid(domain),"},{"line_number":56,"context_line":"            description\u003ddescription)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    def list(self, name\u003dNone, user\u003dNone, **kwargs):"},{"line_number":59,"context_line":"        \"\"\"List groups."},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"        If name or user are provided, then"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2FhhY%3D","line":58,"updated":"2013-05-06 22:21:51.000000000","message":"In this patch set, name\u003d was removed from the other list functions but not this one. Any reason?","commit_id":"a8e33a4fca7f570b81190c3ee7d16bc9821d9c8d"}],"keystoneclient/v3/projects.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            description\u003ddescription,"},{"line_number":59,"context_line":"            enabled\u003denabled)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def list(self, domain\u003dNone, user\u003dNone, **kwargs):"},{"line_number":62,"context_line":"        base_url \u003d \u0027/users/%s\u0027 % base.getid(user) if user else None"},{"line_number":63,"context_line":"        return super(ProjectManager, self).list("},{"line_number":64,"context_line":"            base_url\u003dbase_url,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmEg%3D","line":61,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dNone","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":62,"context_line":"        base_url \u003d \u0027/users/%s\u0027 % base.getid(user) if user else None"},{"line_number":63,"context_line":"        return super(ProjectManager, self).list("},{"line_number":64,"context_line":"            base_url\u003dbase_url,"},{"line_number":65,"context_line":"            domain_id\u003dbase.getid(domain),"},{"line_number":66,"context_line":"            **kwargs)"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def get(self, project):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmEc%3D","line":65,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dname,","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":58,"context_line":"            description\u003ddescription,"},{"line_number":59,"context_line":"            enabled\u003denabled)"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"    def list(self, domain\u003dNone, name\u003dNone, user\u003dNone, **kwargs):"},{"line_number":62,"context_line":"        \"\"\"List projects."},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        If domain, name or user are provided, then"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fhn4%3D","line":61,"updated":"2013-05-06 21:04:33.000000000","message":"suggest add new parameters at the end for better backwards-compatibility.\n\nAlso, seems like don\u0027t need to add a name parameter, since it\u0027ll just be in kwards anyways.","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"}],"keystoneclient/v3/roles.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":74,"context_line":"        return super(RoleManager, self).get("},{"line_number":75,"context_line":"            role_id\u003dbase.getid(role))"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def list(self, user\u003dNone, group\u003dNone, domain\u003dNone, project\u003dNone, **kwargs):"},{"line_number":78,"context_line":"        \"\"\"Lists roles and role grants."},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"        If no arguments are provided, all roles in the system will be listed."}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmEY%3D","line":77,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dNone,","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"            return super(RoleManager, self).list("},{"line_number":91,"context_line":"                base_url\u003dself._role_grants_base_url(user, group,"},{"line_number":92,"context_line":"                                                    domain, project),"},{"line_number":93,"context_line":"                **kwargs)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        return super(RoleManager, self).list()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmEU%3D","line":92,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dname,","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"                                                    domain, project),"},{"line_number":93,"context_line":"                **kwargs)"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        return super(RoleManager, self).list()"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def update(self, role, name\u003dNone):"},{"line_number":98,"context_line":"        return super(RoleManager, self).update("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmFI%3D","line":95,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dname,\n\n**kwargs needs to be passed through here as well","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            role_id\u003dbase.getid(role))"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def list(self, user\u003dNone, group\u003dNone, name\u003dNone, domain\u003dNone, project\u003dNone,"},{"line_number":78,"context_line":"             **kwargs):"},{"line_number":79,"context_line":"        \"\"\"Lists roles and role grants."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"        If no arguments are provided, all roles in the system will be listed."}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fhn0%3D","line":78,"updated":"2013-05-06 21:04:33.000000000","message":"same comment here, move name to end or just remove it.","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"b014f61ab753e3b4dec256f089847c8ef9657492","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        If a user or group is specified, you must also specify either a"},{"line_number":83,"context_line":"        domain or project to list role grants on that pair."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"        If ``**kwargs`` are provided, then also filter roles with"},{"line_number":86,"context_line":"        attributes matching ``**kwargs``."},{"line_number":87,"context_line":"        \"\"\""},{"line_number":88,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOn%2F%2FhhA%3D","line":85,"updated":"2013-05-06 22:21:51.000000000","message":"This paragraph should be up with the previous paragraph since it only applies if user or group is specified. Use \"And if\" to make it a little clearer.","commit_id":"a8e33a4fca7f570b81190c3ee7d16bc9821d9c8d"}],"keystoneclient/v3/users.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            description\u003ddescription,"},{"line_number":50,"context_line":"            enabled\u003denabled)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def list(self, project\u003dNone, domain\u003dNone, group\u003dNone, **kwargs):"},{"line_number":53,"context_line":"        if group:"},{"line_number":54,"context_line":"            base_url \u003d \u0027/groups/%s\u0027 % base.getid(group)"},{"line_number":55,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmE8%3D","line":52,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dNone","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"50127aa389ebd32558aa6029b50a9bf367590d0f","unresolved":false,"context_lines":[{"line_number":58,"context_line":"        return super(UserManager, self).list("},{"line_number":59,"context_line":"            base_url\u003dbase_url,"},{"line_number":60,"context_line":"            domain_id\u003dbase.getid(domain),"},{"line_number":61,"context_line":"            project_id\u003dbase.getid(project),"},{"line_number":62,"context_line":"            **kwargs)"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"    def get(self, user):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2FmE4%3D","line":61,"updated":"2013-05-02 14:50:15.000000000","message":"add name\u003dname,","commit_id":"2e9bed276d7299fe112558c5d702b951a9ba48b3"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":49,"context_line":"            description\u003ddescription,"},{"line_number":50,"context_line":"            enabled\u003denabled)"},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"    def list(self, project\u003dNone, name\u003dNone, domain\u003dNone, group\u003dNone, **kwargs):"},{"line_number":53,"context_line":"        \"\"\"List users."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"        If project, name, domain, or group are provided,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fhno%3D","line":52,"updated":"2013-05-06 21:04:33.000000000","message":"same comment, remove name.","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ee644e6136b48e489fb9beccfdd7d5eb43de3bec","unresolved":false,"context_lines":[{"line_number":67,"context_line":"            base_url\u003dbase_url,"},{"line_number":68,"context_line":"            domain_id\u003dbase.getid(domain),"},{"line_number":69,"context_line":"            project_id\u003dbase.getid(project),"},{"line_number":70,"context_line":"            **kwargs)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"    def get(self, user):"},{"line_number":73,"context_line":"        return super(UserManager, self).get("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2Fhnk%3D","line":70,"updated":"2013-05-06 21:04:33.000000000","message":"name\u003d is missing here.","commit_id":"5040a4c9564a2fc5c53c26741737e0e215b067cd"}]}
