)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4cb2e4e3be2ce17c37490199c3738fe8c1932b6f","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Creating parameter to list inherited role assignments"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the \u0027inherited\u0027 parameter when calling the"},{"line_number":10,"context_line":"list role assignment method. It adds the following query to the URL:"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"http://host:35357/v3/role_assignments?scope.OS-INHERIT:inherited_to\u003dprojects"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"da86d52c_bde35704","line":9,"updated":"2015-01-30 21:51:59.000000000","message":"The parameter is \"os_inherit_extension_inherited_to\"","commit_id":"1ebbfc68e9ef8c151823bd024675ce4cbde60fc1"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"4cb2e4e3be2ce17c37490199c3738fe8c1932b6f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"http://host:35357/v3/role_assignments?scope.OS-INHERIT:inherited_to\u003dprojects"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"It also creates a restriction that blocks the simultaneous use of"},{"line_number":15,"context_line":"\u0027inherited\u0027 and \u0027effective\u0027 queries."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Co-Authored-By: Raildo Mascena \u003craildo@lsd.ufcg.edu.br\u003e"},{"line_number":18,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"da86d52c_fd722f48","line":15,"updated":"2015-01-30 21:51:59.000000000","message":"The os-inherit extension spec doesn\u0027t mention this restriction and it also seems to imply that they can be used together: http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3-os-inherit-ext.html#list-effective-role-assignments\n\nSo I don\u0027t think this restriction should be in the API.","commit_id":"1ebbfc68e9ef8c151823bd024675ce4cbde60fc1"}],"keystoneclient/tests/unit/v3/test_role_assignments.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"28957e230b8713e5f56c45b78b995aa8c1982fa3","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            os_inherit_extension_inherited_to\u003d\u0027projects\u0027)"},{"line_number":190,"context_line":"        self._assert_returned_list(ref_list, returned_list)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        query_string \u003d \"scope.OS-INHERIT:inherited_to\u003dprojects\""},{"line_number":193,"context_line":"        self.assertQueryStringIs(query_string)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def test_domain_and_project_list(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_c4b476d3","line":192,"updated":"2015-02-23 00:52:15.000000000","message":"use \u0027 for strings consistently.","commit_id":"2e15b022fd5fdb61379736e72340eba1e7c2dddb"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"280db12bde1a6494cc820b2740391f604e4f97b7","unresolved":false,"context_lines":[{"line_number":189,"context_line":"            os_inherit_extension_inherited_to\u003d\u0027projects\u0027)"},{"line_number":190,"context_line":"        self._assert_returned_list(ref_list, returned_list)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        query_string \u003d \"scope.OS-INHERIT:inherited_to\u003dprojects\""},{"line_number":193,"context_line":"        self.assertQueryStringIs(query_string)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def test_domain_and_project_list(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_42ea2110","line":192,"in_reply_to":"ba7be1f8_c4b476d3","updated":"2015-02-23 16:41:03.000000000","message":"Done","commit_id":"2e15b022fd5fdb61379736e72340eba1e7c2dddb"}],"keystoneclient/tests/v3/test_role_assignments.py":[{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"a5985babefab535bd11be00c3d4eff46e91b0082","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        ref_list \u003d self.TEST_ALL_RESPONSE_LIST"},{"line_number":182,"context_line":"        self.stub_entity(\u0027GET\u0027,"},{"line_number":183,"context_line":"                         [self.collection_key,"},{"line_number":184,"context_line":"                          \u0027?role.id\u003d\u0027 + self.TEST_ROLE_ID],"},{"line_number":185,"context_line":"                         entity\u003dref_list)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        returned_list \u003d self.manager.list(role\u003dself.TEST_ROLE_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_0535aad9","line":184,"updated":"2014-11-12 01:14:21.000000000","message":"Here should be \u0027scope.OS-INHERIT:inherited_to\u003dprojects\u0027.","commit_id":"8d72db53691aeb94c9ee9fc8de358044bc13ea68"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"b7926077c2d1b77237c7f0210cbc0130531f0f79","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        ref_list \u003d self.TEST_ALL_RESPONSE_LIST"},{"line_number":182,"context_line":"        self.stub_entity(\u0027GET\u0027,"},{"line_number":183,"context_line":"                         [self.collection_key,"},{"line_number":184,"context_line":"                          \u0027?role.id\u003d\u0027 + self.TEST_ROLE_ID],"},{"line_number":185,"context_line":"                         entity\u003dref_list)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        returned_list \u003d self.manager.list(role\u003dself.TEST_ROLE_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_55866966","line":184,"in_reply_to":"5a890539_0535aad9","updated":"2014-11-12 18:48:03.000000000","message":"I don\u0027t think I understand what you mean. Can you explain why?","commit_id":"8d72db53691aeb94c9ee9fc8de358044bc13ea68"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"1d23a2f6a08746a537f7cb72d033e8cfde51042a","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        ref_list \u003d self.TEST_ALL_RESPONSE_LIST"},{"line_number":182,"context_line":"        self.stub_entity(\u0027GET\u0027,"},{"line_number":183,"context_line":"                         [self.collection_key,"},{"line_number":184,"context_line":"                          \u0027?role.id\u003d\u0027 + self.TEST_ROLE_ID],"},{"line_number":185,"context_line":"                         entity\u003dref_list)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        returned_list \u003d self.manager.list(role\u003dself.TEST_ROLE_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_ec64e723","line":184,"in_reply_to":"5a890539_55866966","updated":"2014-11-13 01:00:03.000000000","message":"You want to test the uri: http://ip:port/v3/role_assignments?scope.OS-INHERIT:inherited_to\u003dprojects, right? But here I think you mock another uri: http://ip:port/v3/role_assignments?role.id\u003dself.TEST_ROLE_ID. Then in line 188 you send a request: http://ip:port/v3/role_assignments?role.id\u003dself.TEST_ROLE_ID?scope.OS-INHERIT:inherited_to\u003dprojects. I think you should only test http://ip:port/v3/role_assignments?scope.OS-INHERIT:inherited_to\u003dprojects uri.","commit_id":"8d72db53691aeb94c9ee9fc8de358044bc13ea68"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"2a5d50b651ded687ee08fe639555e186be3036c8","unresolved":false,"context_lines":[{"line_number":181,"context_line":"        ref_list \u003d self.TEST_ALL_RESPONSE_LIST"},{"line_number":182,"context_line":"        self.stub_entity(\u0027GET\u0027,"},{"line_number":183,"context_line":"                         [self.collection_key,"},{"line_number":184,"context_line":"                          \u0027?role.id\u003d\u0027 + self.TEST_ROLE_ID],"},{"line_number":185,"context_line":"                         entity\u003dref_list)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        returned_list \u003d self.manager.list(role\u003dself.TEST_ROLE_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_e65952ff","line":184,"in_reply_to":"5a890539_ec64e723","updated":"2014-11-13 13:54:47.000000000","message":"Got it! Done. Thank you","commit_id":"8d72db53691aeb94c9ee9fc8de358044bc13ea68"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"a5985babefab535bd11be00c3d4eff46e91b0082","unresolved":false,"context_lines":[{"line_number":185,"context_line":"                         entity\u003dref_list)"},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        returned_list \u003d self.manager.list(role\u003dself.TEST_ROLE_ID,"},{"line_number":188,"context_line":"                                          inherited\u003dTrue)"},{"line_number":189,"context_line":"        self._assert_returned_list(ref_list, returned_list)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        kwargs \u003d {\u0027role.id\u0027: self.TEST_ROLE_ID,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a890539_2530e6e7","line":188,"updated":"2014-11-12 01:14:21.000000000","message":"And, here should be self.manager.list(inherited\u003dTrue)","commit_id":"8d72db53691aeb94c9ee9fc8de358044bc13ea68"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f68c6edfd277ea61d777d98ad2f784984c3c955d","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        self._assert_returned_list(ref_list, returned_list)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        kwargs \u003d {\u0027scope.OS-INHERIT:inherited_to\u0027: \u0027projects\u0027}"},{"line_number":193,"context_line":"        self.assertQueryStringContains(**kwargs)"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def test_domain_and_project_list(self):"},{"line_number":196,"context_line":"        # Should only accept either domain or project, never both"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a520504a","line":193,"updated":"2015-02-03 01:48:48.000000000","message":"assertQueryStringIs should be used here.","commit_id":"c54a7cae575d4cb1fb1cce6775b77845c58ba648"}],"keystoneclient/v3/role_assignments.py":[{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"148c578832b8968c7da3da7a0dea63ed191891cc","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _check_not_inherited_and_effective(self, inherited, effective):"},{"line_number":49,"context_line":"        if inherited and effective:"},{"line_number":50,"context_line":"            msg \u003d \u0027Specify either \"inherited\" or \"effective\", not both\u0027"},{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa98f980_711b5dca","line":50,"updated":"2014-09-10 20:48:31.000000000","message":"not sure about the double quotes, since in the other methods the parameters are not highlighted.","commit_id":"84b132399926b05cb780a3649150e45d218ae2c5"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"23bab2bd8a771f69ac6d814352af02d141f557fe","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _check_not_inherited_and_effective(self, inherited, effective):"},{"line_number":49,"context_line":"        if inherited and effective:"},{"line_number":50,"context_line":"            msg \u003d \u0027Specify either \"inherited\" or \"effective\", not both\u0027"},{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da9df570_67d72dc0","line":50,"in_reply_to":"da9df570_ee1cda79","updated":"2014-09-24 16:24:08.000000000","message":"Done","commit_id":"84b132399926b05cb780a3649150e45d218ae2c5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"1b0aff6c226f77706da79e7006842b56d85fe780","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def _check_not_inherited_and_effective(self, inherited, effective):"},{"line_number":49,"context_line":"        if inherited and effective:"},{"line_number":50,"context_line":"            msg \u003d \u0027Specify either \"inherited\" or \"effective\", not both\u0027"},{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da9df570_ee1cda79","line":50,"in_reply_to":"fa98f980_711b5dca","updated":"2014-09-24 15:22:21.000000000","message":"++ drop the quotes","commit_id":"84b132399926b05cb780a3649150e45d218ae2c5"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"1b0aff6c226f77706da79e7006842b56d85fe780","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        :param role: Role to be used as query filter. (optional)"},{"line_number":71,"context_line":"        :param boolean effective: return effective role"},{"line_number":72,"context_line":"                                  assignments. (optional)"},{"line_number":73,"context_line":"        :param boolean inherited: shows inherited role assignments. (optional)"},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self._check_not_user_and_group(user, group)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da9df570_6e21cab3","line":73,"updated":"2014-09-24 15:22:21.000000000","message":"This should probably be \u0027returns inherited...\u0027 instead of \u0027shows inherited...\u0027 to match the style of the `effective` definition.","commit_id":"84b132399926b05cb780a3649150e45d218ae2c5"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"23bab2bd8a771f69ac6d814352af02d141f557fe","unresolved":false,"context_lines":[{"line_number":70,"context_line":"        :param role: Role to be used as query filter. (optional)"},{"line_number":71,"context_line":"        :param boolean effective: return effective role"},{"line_number":72,"context_line":"                                  assignments. (optional)"},{"line_number":73,"context_line":"        :param boolean inherited: shows inherited role assignments. (optional)"},{"line_number":74,"context_line":"        \"\"\""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"        self._check_not_user_and_group(user, group)"}],"source_content_type":"text/x-python","patch_set":2,"id":"da9df570_c7eff985","line":73,"in_reply_to":"da9df570_6e21cab3","updated":"2014-09-24 16:24:08.000000000","message":"Done","commit_id":"84b132399926b05cb780a3649150e45d218ae2c5"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"0ac8c1e584c49e832cb476611387df3697357d36","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":54,"context_line":"             effective\u003dFalse, inherited\u003dFalse):"},{"line_number":55,"context_line":"        \"\"\"Lists role assignments."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_4c655444","line":54,"updated":"2014-12-07 23:15:00.000000000","message":"the parameter should make it obvious that this is an extension... I don\u0027t know the best way to do this but naming it \"inherited\" doesn\u0027t do it.","commit_id":"11de66a6c12c25df268838373be8f6e07de8708d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"2a84f96126ffbbcbaf71c99f096afa62cf646e2d","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":54,"context_line":"             effective\u003dFalse, inherited\u003dFalse):"},{"line_number":55,"context_line":"        \"\"\"Lists role assignments."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_65ef0cea","line":54,"in_reply_to":"3a961159_3f89efca","updated":"2014-12-10 22:49:46.000000000","message":"os_inherit_extension_inherited would work.","commit_id":"11de66a6c12c25df268838373be8f6e07de8708d"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"5e36b5cb7f44048ac7af800e7ba8f6353c7cc3bc","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":54,"context_line":"             effective\u003dFalse, inherited\u003dFalse):"},{"line_number":55,"context_line":"        \"\"\"Lists role assignments."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_3f89efca","line":54,"in_reply_to":"3a961159_4c655444","updated":"2014-12-08 17:49:19.000000000","message":"what about os_inherited or ext_inherited?","commit_id":"11de66a6c12c25df268838373be8f6e07de8708d"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"14a6b279f6337c58739f6f857e6c62dfff32fb1a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":54,"context_line":"             effective\u003dFalse, inherited\u003dFalse):"},{"line_number":55,"context_line":"        \"\"\"Lists role assignments."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_7315a499","line":54,"in_reply_to":"3a961159_659d4c66","updated":"2015-01-18 02:49:55.000000000","message":"not sure why is mandatory to make clear it is an extension? Think something like \"inherited_to\" makes sense, but I agree to provide a symbol for \"projects\".","commit_id":"11de66a6c12c25df268838373be8f6e07de8708d"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"5344dc400e7fabc5f0f86baf37cec5f5ddef9c74","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":54,"context_line":"             effective\u003dFalse, inherited\u003dFalse):"},{"line_number":55,"context_line":"        \"\"\"Lists role assignments."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_659d4c66","line":54,"in_reply_to":"3a961159_65ef0cea","updated":"2014-12-10 22:51:42.000000000","message":"actually, call it os_inherit_extension_inherited_to and provide a symbol for \"projects\". Should be like extensions.OS_INHERIT.inherited_to.Projects","commit_id":"11de66a6c12c25df268838373be8f6e07de8708d"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"0327c3fdc690502931e0791c1c3389e7db25b575","unresolved":false,"context_lines":[{"line_number":51,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":54,"context_line":"             effective\u003dFalse, inherited\u003dFalse):"},{"line_number":55,"context_line":"        \"\"\"Lists role assignments."},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a961159_968e3e31","line":54,"in_reply_to":"3a961159_7315a499","updated":"2015-01-20 16:11:04.000000000","message":"Done","commit_id":"11de66a6c12c25df268838373be8f6e07de8708d"},{"author":{"_account_id":9101,"name":"wanghong","email":"reviewwanghong@126.com","username":"wanghong"},"change_message_id":"825e0e2c2310e7c1c971b42d5fe99f33a6123c3f","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        :param boolean effective: return effective role"},{"line_number":72,"context_line":"                                  assignments. (optional)"},{"line_number":73,"context_line":"        :param boolean os_inherit_extension_inherited_to:"},{"line_number":74,"context_line":"            return inherited role assignments. (optional)"},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self._check_not_user_and_group(user, group)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_2a638a1b","line":74,"updated":"2015-01-21 03:48:35.000000000","message":"It seams that os_inherit_extension_inherited_to isn\u0027t boolean in this patch.\n\nAnd I think os_inherit_inherited_to_projects would be OK?","commit_id":"2efc4a642c65537258a9db46e658c1c3c12a0358"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"bbddb446b9e51410902446a2156fc8d8c64ef2e6","unresolved":false,"context_lines":[{"line_number":71,"context_line":"        :param boolean effective: return effective role"},{"line_number":72,"context_line":"                                  assignments. (optional)"},{"line_number":73,"context_line":"        :param boolean os_inherit_extension_inherited_to:"},{"line_number":74,"context_line":"            return inherited role assignments. (optional)"},{"line_number":75,"context_line":"        \"\"\""},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        self._check_not_user_and_group(user, group)"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a930d6b_26d819ef","line":74,"in_reply_to":"1a930d6b_2a638a1b","updated":"2015-01-21 12:52:34.000000000","message":"Yes, it\u0027s boolean. I\u0027ll fix this.\n\nI thought os_inherit_inherited_to_projects could be OK, but bknudson thought providing a symbol for \u0027projects\u0027 would be better","commit_id":"2efc4a642c65537258a9db46e658c1c3c12a0358"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"f8c99d626c5dcb16becc998949623afcd4d7891b","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            query_params[\u0027effective\u0027] \u003d effective"},{"line_number":95,"context_line":"        if os_inherit_extension_inherited_to:"},{"line_number":96,"context_line":"            query_params[\u0027scope.OS-INHERIT:inherited_to\u0027] \\"},{"line_number":97,"context_line":"                \u003d os_inherit_extension_inherited_to"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return super(RoleAssignmentManager, self).list(**query_params)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a930d6b_fc769ed7","line":97,"updated":"2015-01-21 13:55:46.000000000","message":"nit: I believe using \u0027()\u0027 to allow a multiline statement is preferred to the use of \u0027\\\u0027  - e.g.:\n\nquery_params[\u0027scope.OS-INHERIT:inherited_to\u0027] \u003d (\n    os_inherit_extension_inherited_to)","commit_id":"9a0cf641e95fae614c6965b2ad7aa96101ea8c0a"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"f887b6ed4a65a28d5380fdf4c8d8433588a20fed","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            query_params[\u0027effective\u0027] \u003d effective"},{"line_number":95,"context_line":"        if os_inherit_extension_inherited_to:"},{"line_number":96,"context_line":"            query_params[\u0027scope.OS-INHERIT:inherited_to\u0027] \\"},{"line_number":97,"context_line":"                \u003d os_inherit_extension_inherited_to"},{"line_number":98,"context_line":""},{"line_number":99,"context_line":"        return super(RoleAssignmentManager, self).list(**query_params)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1a930d6b_bfb088de","line":97,"in_reply_to":"1a930d6b_fc769ed7","updated":"2015-01-21 14:14:04.000000000","message":"Done","commit_id":"9a0cf641e95fae614c6965b2ad7aa96101ea8c0a"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"49d6ba838ff7dc833c2d80ce048312ed787a8d42","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":49,"context_line":"             effective\u003dFalse, os_inherit_extension_inherited_to\u003dNone):"},{"line_number":50,"context_line":"        \"\"\"Lists role assignments."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_a05a874d","line":49,"updated":"2015-02-19 08:24:10.000000000","message":"NIT: I think using the name \"inherited_to\" seems descriptive enough, adding the \"os_inherit_extension_\" seems to much information for me.","commit_id":"c54a7cae575d4cb1fb1cce6775b77845c58ba648"},{"author":{"_account_id":13055,"name":"Alexander Makarov","email":"ajiekcahdp.makapob@gmail.com","username":"amakarov"},"change_message_id":"bc701cb36b8dcdd2d85ca8a502cdf7d93f51dd26","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":49,"context_line":"             effective\u003dFalse, os_inherit_extension_inherited_to\u003dNone):"},{"line_number":50,"context_line":"        \"\"\"Lists role assignments."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_e27d51e8","line":49,"in_reply_to":"da86d52c_a05a874d","updated":"2015-02-19 16:55:26.000000000","message":"Initially it was named \u0027inherited\u0027 and was -1\u0027ed for it :)","commit_id":"c54a7cae575d4cb1fb1cce6775b77845c58ba648"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"9e99f47ec28f3594cc32e9fbfd113ffe51b5092a","unresolved":false,"context_lines":[{"line_number":46,"context_line":"            raise exceptions.ValidationError(msg)"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":"    def list(self, user\u003dNone, group\u003dNone, project\u003dNone, domain\u003dNone, role\u003dNone,"},{"line_number":49,"context_line":"             effective\u003dFalse, os_inherit_extension_inherited_to\u003dNone):"},{"line_number":50,"context_line":"        \"\"\"Lists role assignments."},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"        If no arguments are provided, all role assignments in the"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_46170cee","line":49,"in_reply_to":"da86d52c_e27d51e8","updated":"2015-02-19 18:23:09.000000000","message":"thanks for pointing that out. :)","commit_id":"c54a7cae575d4cb1fb1cce6775b77845c58ba648"},{"author":{"_account_id":1941,"name":"Lin Hua Cheng","email":"os.lcheng@gmail.com","username":"lin-hua-cheng"},"change_message_id":"49d6ba838ff7dc833c2d80ce048312ed787a8d42","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        :param boolean effective: return effective role"},{"line_number":67,"context_line":"                                  assignments. (optional)"},{"line_number":68,"context_line":"        :param string os_inherit_extension_inherited_to:"},{"line_number":69,"context_line":"            return inherited role assignments. (optional)"},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        self._check_not_user_and_group(user, group)"}],"source_content_type":"text/x-python","patch_set":9,"id":"da86d52c_4039cbf0","line":69,"updated":"2015-02-19 08:24:10.000000000","message":"describe what are the possible values here. As someone reading the docs, it would be hard to guess what to put in here,","commit_id":"c54a7cae575d4cb1fb1cce6775b77845c58ba648"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"28957e230b8713e5f56c45b78b995aa8c1982fa3","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        :param boolean effective: return effective role"},{"line_number":68,"context_line":"                                  assignments. (optional)"},{"line_number":69,"context_line":"        :param string os_inherit_extension_inherited_to:"},{"line_number":70,"context_line":"            return inherited role assignments for either \u0027projects\u0027 or"},{"line_number":71,"context_line":"            \u0027domains\u0027. (optional)"},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_24c5523c","line":70,"updated":"2015-02-23 00:52:15.000000000","message":"suggest change \"return\" to \"request\".","commit_id":"2e15b022fd5fdb61379736e72340eba1e7c2dddb"},{"author":{"_account_id":10046,"name":"Henrique Truta","email":"henrique@lsd.ufcg.edu.br","username":"henriquetruta"},"change_message_id":"280db12bde1a6494cc820b2740391f604e4f97b7","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        :param boolean effective: return effective role"},{"line_number":68,"context_line":"                                  assignments. (optional)"},{"line_number":69,"context_line":"        :param string os_inherit_extension_inherited_to:"},{"line_number":70,"context_line":"            return inherited role assignments for either \u0027projects\u0027 or"},{"line_number":71,"context_line":"            \u0027domains\u0027. (optional)"},{"line_number":72,"context_line":"        \"\"\""},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"ba7be1f8_02e8290f","line":70,"in_reply_to":"ba7be1f8_24c5523c","updated":"2015-02-23 16:41:03.000000000","message":"I prefer keeping it as it is, following the line above","commit_id":"2e15b022fd5fdb61379736e72340eba1e7c2dddb"}]}
