)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve docs for v3 roles"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In preparation to add functional tests for v3 roles, this"},{"line_number":10,"context_line":"change proposes to detail the method docs, because the tests"},{"line_number":11,"context_line":"need to be based on them."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I67d0649f734d19e1b9547f8ebe5dced1ce8cf7f8"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3aaa91ec_3e0b677f","line":11,"range":{"start_line":9,"start_character":0,"end_line":11,"end_character":25},"updated":"2016-06-27 16:17:11.000000000","message":"nice description","commit_id":"515a8c83085008815a3763c68795b764182cf124"}],"keystoneclient/v3/roles.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        return base_url"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def create_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Create an inference Rule that states one Role implies another Role."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies another role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_def1836c","line":127,"range":{"start_line":127,"start_character":31,"end_line":127,"end_character":74},"updated":"2016-06-27 16:17:11.000000000","message":"(nit) no need to put these in upper case\n\nor simply put:\n\n    Create an inference rule.\n\nsame for the others below","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":124,"context_line":"        return base_url"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def create_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Create an inference Rule that states one Role implies another Role."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies another role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_a45108db","line":127,"range":{"start_line":127,"start_character":31,"end_line":127,"end_character":74},"in_reply_to":"3aaa91ec_def1836c","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def create_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Create an inference Rule that states one Role implies another Role."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies another role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":131,"context_line":"        :param implied_role: the role which is implied by another role."},{"line_number":132,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_7eafaf2b","line":129,"range":{"start_line":129,"start_character":50,"end_line":129,"end_character":62},"updated":"2016-06-27 16:17:11.000000000","message":"implied_role","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def create_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Create an inference Rule that states one Role implies another Role."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies another role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":131,"context_line":"        :param implied_role: the role which is implied by another role."},{"line_number":132,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_84f84cc6","line":129,"range":{"start_line":129,"start_character":50,"end_line":129,"end_character":62},"in_reply_to":"3aaa91ec_7eafaf2b","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies another role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":131,"context_line":"        :param implied_role: the role which is implied by another role."},{"line_number":132,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":133,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":134,"context_line":"                       server."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_5e73d3e7","line":131,"range":{"start_line":131,"start_character":58,"end_line":131,"end_character":70},"updated":"2016-06-27 16:17:11.000000000","message":"prior_role","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies another role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":131,"context_line":"        :param implied_role: the role which is implied by another role."},{"line_number":132,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":133,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":134,"context_line":"                       server."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_042bbc34","line":131,"range":{"start_line":131,"start_character":58,"end_line":131,"end_character":70},"in_reply_to":"3aaa91ec_5e73d3e7","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":134,"context_line":"                       server."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        :returns: the created role_inference is returned from server."},{"line_number":137,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_9e541b22","line":136,"range":{"start_line":136,"start_character":34,"end_line":136,"end_character":35},"updated":"2016-06-27 16:17:11.000000000","message":"remove _","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":134,"context_line":"                       server."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        :returns: the created role_inference is returned from server."},{"line_number":137,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_04b9fcec","line":136,"range":{"start_line":136,"start_character":34,"end_line":136,"end_character":35},"in_reply_to":"3aaa91ec_9e541b22","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        :returns: the created role_inference is returned from server."},{"line_number":137,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"},{"line_number":141,"context_line":"        self.client.put(\"/roles\" + url_tail, **kwargs)"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_41565607","line":139,"updated":"2016-06-27 16:17:11.000000000","message":"these comments above apply to the other operations below for implied roles","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":136,"context_line":"        :returns: the created role_inference is returned from server."},{"line_number":137,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"},{"line_number":141,"context_line":"        self.client.put(\"/roles\" + url_tail, **kwargs)"},{"line_number":142,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_44aae486","line":139,"in_reply_to":"3aaa91ec_41565607","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             project\u003dNone, os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":225,"context_line":"        \"\"\"List roles and role grants."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param user: filter in role grants on the specified user and"},{"line_number":228,"context_line":"                     (domain or project) pair."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_a1b57a32","line":227,"range":{"start_line":227,"start_character":43,"end_line":227,"end_character":45},"updated":"2016-06-27 16:17:11.000000000","message":"for","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             project\u003dNone, os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":225,"context_line":"        \"\"\"List roles and role grants."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param user: filter in role grants on the specified user and"},{"line_number":228,"context_line":"                     (domain or project) pair."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c44d34c6","line":227,"range":{"start_line":227,"start_character":43,"end_line":227,"end_character":45},"in_reply_to":"3aaa91ec_a1b57a32","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             project\u003dNone, os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":225,"context_line":"        \"\"\"List roles and role grants."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param user: filter in role grants on the specified user and"},{"line_number":228,"context_line":"                     (domain or project) pair."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"},{"line_number":231,"context_line":"                      (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_e1d3025e","line":228,"range":{"start_line":227,"start_character":65,"end_line":228,"end_character":46},"updated":"2016-06-27 16:17:11.000000000","message":"what about : \"on a resource. Domain or project must be specified.\"","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             project\u003dNone, os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":225,"context_line":"        \"\"\"List roles and role grants."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param user: filter in role grants on the specified user and"},{"line_number":228,"context_line":"                     (domain or project) pair."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"},{"line_number":231,"context_line":"                      (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_449e6408","line":228,"range":{"start_line":227,"start_character":65,"end_line":228,"end_character":46},"in_reply_to":"3aaa91ec_e1d3025e","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        :param user: filter in role grants on the specified user and"},{"line_number":228,"context_line":"                     (domain or project) pair."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"},{"line_number":231,"context_line":"                      (domain or project) pair."},{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified (user or group)"},{"line_number":234,"context_line":"                       and domain pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_6147121e","line":231,"range":{"start_line":230,"start_character":22,"end_line":231,"end_character":47},"updated":"2016-06-27 16:17:11.000000000","message":"same suggestion as above","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        :param user: filter in role grants on the specified user and"},{"line_number":228,"context_line":"                     (domain or project) pair."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"},{"line_number":231,"context_line":"                      (domain or project) pair."},{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified (user or group)"},{"line_number":234,"context_line":"                       and domain pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_648560ac","line":231,"range":{"start_line":230,"start_character":22,"end_line":231,"end_character":47},"in_reply_to":"3aaa91ec_6147121e","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"},{"line_number":231,"context_line":"                      (domain or project) pair."},{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified (user or group)"},{"line_number":234,"context_line":"                       and domain pair."},{"line_number":235,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":236,"context_line":"        :param project: filter in role grants on the specified (user or group)"},{"line_number":237,"context_line":"                        and project pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_616ef297","line":234,"range":{"start_line":233,"start_character":45,"end_line":234,"end_character":39},"updated":"2016-06-27 16:17:11.000000000","message":"\"on the specified domain.\"\n\nthere is nothing saying you must specify a user or group if you specify domain filter","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":230,"context_line":"        :param group: filter in role grants on the specified group and"},{"line_number":231,"context_line":"                      (domain or project) pair."},{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified (user or group)"},{"line_number":234,"context_line":"                       and domain pair."},{"line_number":235,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":236,"context_line":"        :param project: filter in role grants on the specified (user or group)"},{"line_number":237,"context_line":"                        and project pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_8424ccc6","line":234,"range":{"start_line":233,"start_character":45,"end_line":234,"end_character":39},"in_reply_to":"3aaa91ec_616ef297","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified (user or group)"},{"line_number":234,"context_line":"                       and domain pair."},{"line_number":235,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":236,"context_line":"        :param project: filter in role grants on the specified (user or group)"},{"line_number":237,"context_line":"                        and project pair."},{"line_number":238,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":239,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":240,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_410e56e6","line":237,"range":{"start_line":235,"start_character":24,"end_line":237,"end_character":41},"updated":"2016-06-27 16:17:11.000000000","message":"ditto","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified (user or group)"},{"line_number":234,"context_line":"                       and domain pair."},{"line_number":235,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":236,"context_line":"        :param project: filter in role grants on the specified (user or group)"},{"line_number":237,"context_line":"                        and project pair."},{"line_number":238,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":239,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":240,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c42ed4a4","line":237,"range":{"start_line":235,"start_character":24,"end_line":237,"end_character":41},"in_reply_to":"3aaa91ec_410e56e6","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        :param role: the role to be granted on the server."},{"line_number":300,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":301,"context_line":"        :param user: grant role to the specified user and (domain or project)"},{"line_number":302,"context_line":"                     pair."},{"line_number":303,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":304,"context_line":"        :param group: grant role to the specified group and (domain or project)"},{"line_number":305,"context_line":"                      pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_e1e022cf","line":302,"range":{"start_line":301,"start_character":21,"end_line":302,"end_character":26},"updated":"2016-06-27 16:17:11.000000000","message":"talk  about the user: e.g \"the user to have the role granted.\"","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        :param role: the role to be granted on the server."},{"line_number":300,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":301,"context_line":"        :param user: grant role to the specified user and (domain or project)"},{"line_number":302,"context_line":"                     pair."},{"line_number":303,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":304,"context_line":"        :param group: grant role to the specified group and (domain or project)"},{"line_number":305,"context_line":"                      pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_476dc6cb","line":302,"range":{"start_line":301,"start_character":21,"end_line":302,"end_character":26},"in_reply_to":"3aaa91ec_e1e022cf","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        :param user: grant role to the specified user and (domain or project)"},{"line_number":302,"context_line":"                     pair."},{"line_number":303,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":304,"context_line":"        :param group: grant role to the specified group and (domain or project)"},{"line_number":305,"context_line":"                      pair."},{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: grant role to the specified (user or group) and domain"},{"line_number":308,"context_line":"                       pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_41e656e9","line":305,"range":{"start_line":304,"start_character":0,"end_line":305,"end_character":27},"updated":"2016-06-27 16:17:11.000000000","message":"ditto: e.g \"the group to have the role granted.\"","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        :param user: grant role to the specified user and (domain or project)"},{"line_number":302,"context_line":"                     pair."},{"line_number":303,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":304,"context_line":"        :param group: grant role to the specified group and (domain or project)"},{"line_number":305,"context_line":"                      pair."},{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: grant role to the specified (user or group) and domain"},{"line_number":308,"context_line":"                       pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_e79e72b7","line":305,"range":{"start_line":304,"start_character":0,"end_line":305,"end_character":27},"in_reply_to":"3aaa91ec_41e656e9","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        :param group: grant role to the specified group and (domain or project)"},{"line_number":305,"context_line":"                      pair."},{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: grant role to the specified (user or group) and domain"},{"line_number":308,"context_line":"                       pair."},{"line_number":309,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":310,"context_line":"        :param project: grant role to the specified (user or group) and project"},{"line_number":311,"context_line":"                        pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_a1d73aec","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":28},"updated":"2016-06-27 16:17:11.000000000","message":"ditto: e.g \"the domain in which the role will be granted.\"","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        :param group: grant role to the specified group and (domain or project)"},{"line_number":305,"context_line":"                      pair."},{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: grant role to the specified (user or group) and domain"},{"line_number":308,"context_line":"                       pair."},{"line_number":309,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":310,"context_line":"        :param project: grant role to the specified (user or group) and project"},{"line_number":311,"context_line":"                        pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c70256b4","line":308,"range":{"start_line":307,"start_character":0,"end_line":308,"end_character":28},"in_reply_to":"3aaa91ec_a1d73aec","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        :param domain: grant role to the specified (user or group) and domain"},{"line_number":308,"context_line":"                       pair."},{"line_number":309,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":310,"context_line":"        :param project: grant role to the specified (user or group) and project"},{"line_number":311,"context_line":"                        pair."},{"line_number":312,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":313,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":314,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_012a8ee7","line":311,"range":{"start_line":310,"start_character":24,"end_line":311,"end_character":29},"updated":"2016-06-27 16:17:11.000000000","message":"ditto","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":307,"context_line":"        :param domain: grant role to the specified (user or group) and domain"},{"line_number":308,"context_line":"                       pair."},{"line_number":309,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":310,"context_line":"        :param project: grant role to the specified (user or group) and project"},{"line_number":311,"context_line":"                        pair."},{"line_number":312,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":313,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":314,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_072bbe34","line":311,"range":{"start_line":310,"start_character":24,"end_line":311,"end_character":29},"in_reply_to":"3aaa91ec_012a8ee7","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    @positional(enforcement\u003dpositional.WARN)"},{"line_number":338,"context_line":"    def check(self, role, user\u003dNone, group\u003dNone, domain\u003dNone, project\u003dNone,"},{"line_number":339,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":340,"context_line":"        \"\"\"Check if a (user or group) has a role on a (domain or project)."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_8125de0b","line":340,"range":{"start_line":340,"start_character":22,"end_line":340,"end_character":23},"updated":"2016-06-27 16:17:11.000000000","message":"I think these look better without parenthesis (same for other occurrences above)","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":337,"context_line":"    @positional(enforcement\u003dpositional.WARN)"},{"line_number":338,"context_line":"    def check(self, role, user\u003dNone, group\u003dNone, domain\u003dNone, project\u003dNone,"},{"line_number":339,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":340,"context_line":"        \"\"\"Check if a (user or group) has a role on a (domain or project)."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_07873e13","line":340,"range":{"start_line":340,"start_character":22,"end_line":340,"end_character":23},"in_reply_to":"3aaa91ec_8125de0b","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":339,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":340,"context_line":"        \"\"\"Check if a (user or group) has a role on a (domain or project)."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."},{"line_number":344,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_0178cef7","line":342,"range":{"start_line":342,"start_character":43,"end_line":342,"end_character":45},"updated":"2016-06-27 16:17:11.000000000","message":"for","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":339,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":340,"context_line":"        \"\"\"Check if a (user or group) has a role on a (domain or project)."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."},{"line_number":344,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_e792f24a","line":342,"range":{"start_line":342,"start_character":43,"end_line":342,"end_character":45},"in_reply_to":"3aaa91ec_0178cef7","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":339,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":340,"context_line":"        \"\"\"Check if a (user or group) has a role on a (domain or project)."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."},{"line_number":344,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"},{"line_number":346,"context_line":"                      (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_2187cad8","line":343,"range":{"start_line":342,"start_character":64,"end_line":343,"end_character":46},"updated":"2016-06-27 16:17:11.000000000","message":".\n\ndon\u0027t need this","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":339,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":340,"context_line":"        \"\"\"Check if a (user or group) has a role on a (domain or project)."},{"line_number":341,"context_line":""},{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."},{"line_number":344,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"},{"line_number":346,"context_line":"                      (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_4798266b","line":343,"range":{"start_line":342,"start_character":64,"end_line":343,"end_character":46},"in_reply_to":"3aaa91ec_2187cad8","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."},{"line_number":344,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"},{"line_number":346,"context_line":"                      (domain or project) pair."},{"line_number":347,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":348,"context_line":"        :param domain: check for role grants on the specified (user or group)"},{"line_number":349,"context_line":"                       and domain pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_01c60e16","line":346,"range":{"start_line":345,"start_character":22,"end_line":346,"end_character":47},"updated":"2016-06-27 16:17:11.000000000","message":"ditto","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":342,"context_line":"        :param user: check for role grants on the specified user and"},{"line_number":343,"context_line":"                     (domain or project) pair."},{"line_number":344,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"},{"line_number":346,"context_line":"                      (domain or project) pair."},{"line_number":347,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":348,"context_line":"        :param domain: check for role grants on the specified (user or group)"},{"line_number":349,"context_line":"                       and domain pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c7c37637","line":346,"range":{"start_line":345,"start_character":22,"end_line":346,"end_character":47},"in_reply_to":"3aaa91ec_01c60e16","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"},{"line_number":346,"context_line":"                      (domain or project) pair."},{"line_number":347,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":348,"context_line":"        :param domain: check for role grants on the specified (user or group)"},{"line_number":349,"context_line":"                       and domain pair."},{"line_number":350,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":351,"context_line":"        :param project: check for role grants on the specified (user or group)"},{"line_number":352,"context_line":"                        and project pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_21ecea8e","line":349,"range":{"start_line":348,"start_character":62,"end_line":349,"end_character":39},"updated":"2016-06-27 16:17:11.000000000","message":"domain.\n\nditto","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"9ca64e6d947f8f2ffa691f8b98b862728e628045","unresolved":false,"context_lines":[{"line_number":345,"context_line":"        :param group: check for role grants on the specified group and"},{"line_number":346,"context_line":"                      (domain or project) pair."},{"line_number":347,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":348,"context_line":"        :param domain: check for role grants on the specified (user or group)"},{"line_number":349,"context_line":"                       and domain pair."},{"line_number":350,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":351,"context_line":"        :param project: check for role grants on the specified (user or group)"},{"line_number":352,"context_line":"                        and project pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_67cd625d","line":349,"range":{"start_line":348,"start_character":62,"end_line":349,"end_character":39},"in_reply_to":"3aaa91ec_21ecea8e","updated":"2016-06-27 17:10:47.000000000","message":"Done","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":348,"context_line":"        :param domain: check for role grants on the specified (user or group)"},{"line_number":349,"context_line":"                       and domain pair."},{"line_number":350,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":351,"context_line":"        :param project: check for role grants on the specified (user or group)"},{"line_number":352,"context_line":"                        and project pair."},{"line_number":353,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":354,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":355,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_c1fb6646","line":352,"range":{"start_line":351,"start_character":24,"end_line":352,"end_character":41},"updated":"2016-06-27 16:17:11.000000000","message":"same","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":382,"context_line":"               os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":383,"context_line":"        \"\"\"Revoke a role from a (user or group) on a (domain or project)."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        :param user: revoke role grants on the specified user and"},{"line_number":386,"context_line":"                     (domain or project) pair."},{"line_number":387,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":388,"context_line":"        :param group: revoke role grants on the specified group and"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_618552ac","line":385,"range":{"start_line":385,"start_character":40,"end_line":385,"end_character":42},"updated":"2016-06-27 16:17:11.000000000","message":"for","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":382,"context_line":"               os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":383,"context_line":"        \"\"\"Revoke a role from a (user or group) on a (domain or project)."},{"line_number":384,"context_line":""},{"line_number":385,"context_line":"        :param user: revoke role grants on the specified user and"},{"line_number":386,"context_line":"                     (domain or project) pair."},{"line_number":387,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":388,"context_line":"        :param group: revoke role grants on the specified group and"},{"line_number":389,"context_line":"                      (domain or project) pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_e1bf825e","line":386,"range":{"start_line":385,"start_character":56,"end_line":386,"end_character":46},"updated":"2016-06-27 16:17:11.000000000","message":".\n\ndon\u0027t need this","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":385,"context_line":"        :param user: revoke role grants on the specified user and"},{"line_number":386,"context_line":"                     (domain or project) pair."},{"line_number":387,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":388,"context_line":"        :param group: revoke role grants on the specified group and"},{"line_number":389,"context_line":"                      (domain or project) pair."},{"line_number":390,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":391,"context_line":"        :param domain: revoke role grants on the specified (user or group)"},{"line_number":392,"context_line":"                       and domain pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_41b5b67c","line":389,"range":{"start_line":388,"start_character":22,"end_line":389,"end_character":47},"updated":"2016-06-27 16:17:11.000000000","message":"ditto","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":388,"context_line":"        :param group: revoke role grants on the specified group and"},{"line_number":389,"context_line":"                      (domain or project) pair."},{"line_number":390,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":391,"context_line":"        :param domain: revoke role grants on the specified (user or group)"},{"line_number":392,"context_line":"                       and domain pair."},{"line_number":393,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":394,"context_line":"        :param project: revoke role grants on the specified (user or group)"},{"line_number":395,"context_line":"                        and project pair."}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_61ac3236","line":392,"range":{"start_line":391,"start_character":58,"end_line":392,"end_character":39},"updated":"2016-06-27 16:17:11.000000000","message":"domain.\n\ndon\u0027t need this","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"fc67fcfb6c1a10e8b94ed1ce7152faefa77f8f4d","unresolved":false,"context_lines":[{"line_number":391,"context_line":"        :param domain: revoke role grants on the specified (user or group)"},{"line_number":392,"context_line":"                       and domain pair."},{"line_number":393,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":394,"context_line":"        :param project: revoke role grants on the specified (user or group)"},{"line_number":395,"context_line":"                        and project pair."},{"line_number":396,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":397,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":398,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":1,"id":"3aaa91ec_01628e16","line":395,"range":{"start_line":394,"start_character":24,"end_line":395,"end_character":41},"updated":"2016-06-27 16:17:11.000000000","message":"ditto","commit_id":"515a8c83085008815a3763c68795b764182cf124"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ed17db034ef1996d921440cbb539752d64012a70","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        \"\"\"Create a role."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        :param str name: the name of the role."},{"line_number":102,"context_line":"        :param domain: the domain of the role."},{"line_number":103,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":104,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":105,"context_line":"                       server."}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_142bdf34","line":102,"range":{"start_line":102,"start_character":8,"end_line":102,"end_character":46},"updated":"2016-06-27 19:56:48.000000000","message":"maybe we should specify that this can be None? If a value is passed it is a domain-scoped role, otherwise it\u0027s a global role","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"e8b3219f26eb57c999e7f4a2980bd1e923244b40","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        \"\"\"Create a role."},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        :param str name: the name of the role."},{"line_number":102,"context_line":"        :param domain: the domain of the role."},{"line_number":103,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":104,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":105,"context_line":"                       server."}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_1c649647","line":102,"range":{"start_line":102,"start_character":8,"end_line":102,"end_character":46},"in_reply_to":"3aaa91ec_142bdf34","updated":"2016-06-28 06:30:35.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ed17db034ef1996d921440cbb539752d64012a70","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def create_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Create an inference rule."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":131,"context_line":"        :param implied_role: the role which is implied by prior_role."},{"line_number":132,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_b4c48b5f","line":129,"range":{"start_line":129,"start_character":50,"end_line":129,"end_character":62},"updated":"2016-06-27 19:56:48.000000000","message":"can we add backticks (``) around \"implied_role\":\n\n  ``implied_role``\n\nit\u0027ll cause some syntax highlighting, see http://docutils.sourceforge.net/docs/user/rst/quickref.html for details","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"e8b3219f26eb57c999e7f4a2980bd1e923244b40","unresolved":false,"context_lines":[{"line_number":126,"context_line":"    def create_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":127,"context_line":"        \"\"\"Create an inference rule."},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":130,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":131,"context_line":"        :param implied_role: the role which is implied by prior_role."},{"line_number":132,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_1c993620","line":129,"range":{"start_line":129,"start_character":50,"end_line":129,"end_character":62},"in_reply_to":"3aaa91ec_b4c48b5f","updated":"2016-06-28 06:30:35.000000000","message":"Done. Thanks for the link :)","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":134,"context_line":"                       server."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        :returns: the created role inference is returned from server."},{"line_number":137,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_b375c833","line":136,"range":{"start_line":136,"start_character":45,"end_line":136,"end_character":48},"updated":"2016-06-27 18:04:38.000000000","message":"don\u0027t need \u0027is\u0027 to be in consistency with other docs","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":134,"context_line":"                       server."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"        :returns: the created role inference is returned from server."},{"line_number":137,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_e18f65ca","line":136,"range":{"start_line":136,"start_character":45,"end_line":136,"end_character":48},"in_reply_to":"3aaa91ec_b375c833","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ed17db034ef1996d921440cbb539752d64012a70","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.client.put(\"/roles\" + url_tail, **kwargs)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def delete_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":144,"context_line":"        \"\"\"Delete an inference rule."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":147,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_b472cb47","line":144,"range":{"start_line":144,"start_character":11,"end_line":144,"end_character":35},"updated":"2016-06-27 19:56:48.000000000","message":"I find this one weird, \"delete\" should only take one argument, why does this need two?\n\nIs this more of ... \n\n  \"Remove an implied role\" ?\n\nDamn, even the spec says Delete: http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#delete-role-inference-rule","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"e8b3219f26eb57c999e7f4a2980bd1e923244b40","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self.client.put(\"/roles\" + url_tail, **kwargs)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def delete_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":144,"context_line":"        \"\"\"Delete an inference rule."},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":147,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_fc054a14","line":144,"range":{"start_line":144,"start_character":11,"end_line":144,"end_character":35},"in_reply_to":"3aaa91ec_b472cb47","updated":"2016-06-28 06:30:35.000000000","message":"Thanks for bringing it up. I am leaving it as such, le\u0027me know if we should change this one despite consistency.","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":167,"context_line":"                       server."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :returns: the specified role inference is returned from server."},{"line_number":170,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_33af187f","line":169,"range":{"start_line":169,"start_character":46,"end_line":169,"end_character":49},"updated":"2016-06-27 18:04:38.000000000","message":"don\u0027t need \u0027is\u0027 to be in consistency with other docs","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":166,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":167,"context_line":"                       server."},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        :returns: the specified role inference is returned from server."},{"line_number":170,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_61ba5570","line":169,"range":{"start_line":169,"start_character":46,"end_line":169,"end_character":49},"in_reply_to":"3aaa91ec_33af187f","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specifice inference rule if if it exists."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_f3dbd01f","line":177,"range":{"start_line":177,"start_character":56,"end_line":177,"end_character":72},"updated":"2016-06-27 18:04:38.000000000","message":"doesn\u0027t need this; it\u0027s obvious and the :returns: below already tells what happens in the case it doesn\u0027t exist","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specifice inference rule if if it exists."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_b3c30838","line":177,"range":{"start_line":177,"start_character":32,"end_line":177,"end_character":41},"updated":"2016-06-27 18:04:38.000000000","message":"specific","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specifice inference rule if if it exists."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_816ca109","line":177,"range":{"start_line":177,"start_character":32,"end_line":177,"end_character":41},"in_reply_to":"3aaa91ec_b3c30838","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specifice inference rule if if it exists."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies implied_role."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_0181d18f","line":177,"range":{"start_line":177,"start_character":56,"end_line":177,"end_character":72},"in_reply_to":"3aaa91ec_f3dbd01f","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             project\u003dNone, os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":225,"context_line":"        \"\"\"List roles and role grants."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param user: filter in role grants for the specified user and"},{"line_number":228,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants for the specified group and"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_33a43807","line":227,"range":{"start_line":227,"start_character":65,"end_line":227,"end_character":69},"updated":"2016-06-27 18:04:38.000000000","message":"remove \u0027 and\u0027","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":224,"context_line":"             project\u003dNone, os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":225,"context_line":"        \"\"\"List roles and role grants."},{"line_number":226,"context_line":""},{"line_number":227,"context_line":"        :param user: filter in role grants for the specified user and"},{"line_number":228,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants for the specified group and"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_bcae22e5","line":227,"range":{"start_line":227,"start_character":65,"end_line":227,"end_character":69},"in_reply_to":"3aaa91ec_33a43807","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        :param user: filter in role grants for the specified user and"},{"line_number":228,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants for the specified group and"},{"line_number":231,"context_line":"                      on a resource. Domain or project must be specified."},{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified domain."}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_f32ab02e","line":230,"range":{"start_line":230,"start_character":67,"end_line":230,"end_character":71},"updated":"2016-06-27 18:04:38.000000000","message":"same","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        :param user: filter in role grants for the specified user and"},{"line_number":228,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":229,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":230,"context_line":"        :param group: filter in role grants for the specified group and"},{"line_number":231,"context_line":"                      on a resource. Domain or project must be specified."},{"line_number":232,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":233,"context_line":"        :param domain: filter in role grants on the specified domain."}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_9cab66d6","line":230,"range":{"start_line":230,"start_character":67,"end_line":230,"end_character":71},"in_reply_to":"3aaa91ec_f32ab02e","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"51e5995f7a6835ef7758cd013534756f3f18a029","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                                                    It provides the ability for"},{"line_number":239,"context_line":"                                                    projects to inherit role"},{"line_number":240,"context_line":"                                                    assignments from their"},{"line_number":241,"context_line":"                                                    domains or from projects in"},{"line_number":242,"context_line":"                                                    the hierarchy."},{"line_number":243,"context_line":"        :param kwargs: any other attribute provided will filter roles on."},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_13badc6e","line":241,"updated":"2016-06-27 18:09:47.000000000","message":"nit: maybe say \"parent projects\" rather than just \"projects\"","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"3ca6cf9aa4a934399be36e0816adf79b852d484e","unresolved":false,"context_lines":[{"line_number":238,"context_line":"                                                    It provides the ability for"},{"line_number":239,"context_line":"                                                    projects to inherit role"},{"line_number":240,"context_line":"                                                    assignments from their"},{"line_number":241,"context_line":"                                                    domains or from projects in"},{"line_number":242,"context_line":"                                                    the hierarchy."},{"line_number":243,"context_line":"        :param kwargs: any other attribute provided will filter roles on."},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_bc7bc228","line":241,"in_reply_to":"3aaa91ec_13badc6e","updated":"2016-06-28 05:51:52.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ed17db034ef1996d921440cbb539752d64012a70","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            **kwargs)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def delete(self, role):"},{"line_number":281,"context_line":"        \"\"\"Delete a role."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        :param role: the role to be deleted on the server."},{"line_number":284,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_d44837cf","line":281,"range":{"start_line":281,"start_character":11,"end_line":281,"end_character":24},"updated":"2016-06-27 19:56:48.000000000","message":"You may want to mention that this will delete all implied roles too.\n\n  \"\"\"Delete a role or implied role.\n\n  When a role is deleted all implied roles will be deleted as well.\n\n  :param role: the role...\n  ...\n\n  \"\"\"","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"e8b3219f26eb57c999e7f4a2980bd1e923244b40","unresolved":false,"context_lines":[{"line_number":278,"context_line":"            **kwargs)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def delete(self, role):"},{"line_number":281,"context_line":"        \"\"\"Delete a role."},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        :param role: the role to be deleted on the server."},{"line_number":284,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_c2f7c8f3","line":281,"range":{"start_line":281,"start_character":11,"end_line":281,"end_character":24},"in_reply_to":"3aaa91ec_d44837cf","updated":"2016-06-28 06:30:35.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"51e5995f7a6835ef7758cd013534756f3f18a029","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                                                    It provides the ability for"},{"line_number":309,"context_line":"                                                    projects to inherit role"},{"line_number":310,"context_line":"                                                    assignments from their"},{"line_number":311,"context_line":"                                                    domains or from projects in"},{"line_number":312,"context_line":"                                                    the hierarchy."},{"line_number":313,"context_line":"        :param kwargs: any other attribute provided will be passed to server."},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_d3669428","line":311,"updated":"2016-06-27 18:09:47.000000000","message":"nit: same here","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"3ca6cf9aa4a934399be36e0816adf79b852d484e","unresolved":false,"context_lines":[{"line_number":308,"context_line":"                                                    It provides the ability for"},{"line_number":309,"context_line":"                                                    projects to inherit role"},{"line_number":310,"context_line":"                                                    assignments from their"},{"line_number":311,"context_line":"                                                    domains or from projects in"},{"line_number":312,"context_line":"                                                    the hierarchy."},{"line_number":313,"context_line":"        :param kwargs: any other attribute provided will be passed to server."},{"line_number":314,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_9c78862d","line":311,"in_reply_to":"3aaa91ec_d3669428","updated":"2016-06-28 05:51:52.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":372,"context_line":"               os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":373,"context_line":"        \"\"\"Revoke a role from a user or group on a domain or project."},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        :param user: revoke role grants for the specified user and"},{"line_number":376,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":377,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":378,"context_line":"        :param group: revoke role grants for the specified group and"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_b3c78863","line":375,"range":{"start_line":375,"start_character":62,"end_line":375,"end_character":66},"updated":"2016-06-27 18:04:38.000000000","message":"remove \u0027 and\u0027","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":372,"context_line":"               os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":373,"context_line":"        \"\"\"Revoke a role from a user or group on a domain or project."},{"line_number":374,"context_line":""},{"line_number":375,"context_line":"        :param user: revoke role grants for the specified user and"},{"line_number":376,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":377,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":378,"context_line":"        :param group: revoke role grants for the specified group and"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_7c7b1a7c","line":375,"range":{"start_line":375,"start_character":62,"end_line":375,"end_character":66},"in_reply_to":"3aaa91ec_b3c78863","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"7238778da6f037bf2fe02e54d39bbd8b9f1b23db","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        :param user: revoke role grants for the specified user and"},{"line_number":376,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":377,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":378,"context_line":"        :param group: revoke role grants for the specified group and"},{"line_number":379,"context_line":"                      on a resource. Domain or project must be specified."},{"line_number":380,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":381,"context_line":"        :param domain: revoke role grants on the specified domain."}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_f39f5063","line":378,"range":{"start_line":378,"start_character":64,"end_line":378,"end_character":68},"updated":"2016-06-27 18:04:38.000000000","message":"ditto","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d1f4b61ff942c6948e23fadbebf9f9c7ae6652cd","unresolved":false,"context_lines":[{"line_number":375,"context_line":"        :param user: revoke role grants for the specified user and"},{"line_number":376,"context_line":"                     on a resource. Domain or project must be specified."},{"line_number":377,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":378,"context_line":"        :param group: revoke role grants for the specified group and"},{"line_number":379,"context_line":"                      on a resource. Domain or project must be specified."},{"line_number":380,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":381,"context_line":"        :param domain: revoke role grants on the specified domain."}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_bc958289","line":378,"range":{"start_line":378,"start_character":64,"end_line":378,"end_character":68},"in_reply_to":"3aaa91ec_f39f5063","updated":"2016-06-28 05:42:40.000000000","message":"Done","commit_id":"d198694566dc83d90941bec95ec6d0db742c8973"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f0a928437b6341cd1afe176b0c560654362cd6b0","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: the created role inference returned from server."},{"line_number":138,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_99febfac","line":137,"updated":"2016-06-28 13:28:35.000000000","message":"This method has no return statement, so returns None.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"eece150b45f5b3de88a2591340919bbefabcd177","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: the created role inference returned from server."},{"line_number":138,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_df70ef42","line":137,"in_reply_to":"3aaa91ec_4e82cc01","updated":"2016-06-29 12:24:57.000000000","message":"++ to be fixed in a follow up patch (and the \"returns\" docstring added)","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"74f57eb900be85c6b997b5ea9aed9c6b917763a3","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: the created role inference returned from server."},{"line_number":138,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_4e82cc01","line":137,"in_reply_to":"3aaa91ec_8bb0268d","updated":"2016-06-28 13:56:44.000000000","message":"Yes, the client code is incorrect.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"77fa0342de4002f57b5671095ff049df12ca4b35","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: the created role inference returned from server."},{"line_number":138,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_8bb0268d","line":137,"in_reply_to":"3aaa91ec_99febfac","updated":"2016-06-28 13:50:06.000000000","message":"Agreed, although the server does return something [1]. This can be handled as a bug and fixed later if we want to change the behavior.\n\n[1] https://github.com/openstack/keystone/blob/d9c6b50/keystone/assignment/controllers.py#L508-L515","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: the created role inference returned from server."},{"line_number":138,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_50908e95","line":137,"in_reply_to":"3aaa91ec_99febfac","updated":"2016-07-15 12:14:25.000000000","message":"Done","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: the created role inference returned from server."},{"line_number":138,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_f0d7fa4c","line":137,"in_reply_to":"3aaa91ec_df70ef42","updated":"2016-07-15 12:14:25.000000000","message":"Thanks will do in a follow up patch.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f0a928437b6341cd1afe176b0c560654362cd6b0","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":152,"context_line":"                       server."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :returns: 204 No Content."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_19292f38","line":154,"updated":"2016-06-28 13:28:35.000000000","message":"This doesn\u0027t make any sense. How is a python programmer supposed to use this? This applies to all these methods that say they return \"204 No Content\"","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":152,"context_line":"                       server."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :returns: 204 No Content."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_908e7625","line":154,"in_reply_to":"1aa78d24_92ab231d","updated":"2016-07-15 12:14:25.000000000","message":"Done","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"cf829ac2f8e805dc2479fcf7539591498d1db083","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":152,"context_line":"                       server."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :returns: 204 No Content."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_92ab231d","line":154,"in_reply_to":"3aaa91ec_0e8f2424","updated":"2016-07-05 11:15:59.000000000","message":"It returns a response object with 204 status and None as data","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"eece150b45f5b3de88a2591340919bbefabcd177","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":152,"context_line":"                       server."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :returns: 204 No Content."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_5ff51feb","line":154,"in_reply_to":"3aaa91ec_0e8f2424","updated":"2016-06-29 12:24:57.000000000","message":"not related to this change: we need to fix the docs of the internal classes as well, so we don\u0027t have to check a method return every time we want to understand what it is. Examples for delete():\n\n- https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/base.py#L413\n\n- https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/base.py#L212\n\n- https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/baseclient.py#L45\n\nAlso spotted \"204 No Content\" as already being documented: https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/v3/projects.py#L217","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"77fa0342de4002f57b5671095ff049df12ca4b35","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":152,"context_line":"                       server."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :returns: 204 No Content."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_ae189076","line":154,"in_reply_to":"3aaa91ec_19292f38","updated":"2016-06-28 13:50:06.000000000","message":"So perhaps we should say it returns None instead ?","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"74f57eb900be85c6b997b5ea9aed9c6b917763a3","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":152,"context_line":"                       server."},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"        :returns: 204 No Content."},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        \"\"\""},{"line_number":157,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_0e8f2424","line":154,"in_reply_to":"3aaa91ec_ae189076","updated":"2016-06-28 13:56:44.000000000","message":"Maybe it returns a response object or something? I\u0027d have to try it.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"eece150b45f5b3de88a2591340919bbefabcd177","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                  exists."},{"line_number":189,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        :returns: 204 No Content if specified role inference doesn\u0027t exist."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        \"\"\""},{"line_number":194,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_7ffbbb7b","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":32},"updated":"2016-06-29 12:24:57.000000000","message":"the comment above also applies here","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                  exists."},{"line_number":189,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        :returns: 204 No Content if specified role inference doesn\u0027t exist."},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"        \"\"\""},{"line_number":194,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_5b038fb8","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":32},"in_reply_to":"3aaa91ec_7ffbbb7b","updated":"2016-07-15 12:14:25.000000000","message":"Done","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        :param role: the role to be deleted on the server."},{"line_number":287,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        :returns: 204 No Content."},{"line_number":290,"context_line":""},{"line_number":291,"context_line":"        \"\"\""},{"line_number":292,"context_line":"        return super(RoleManager, self).delete("}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_bb5a73f0","line":289,"range":{"start_line":289,"start_character":8,"end_line":289,"end_character":33},"updated":"2016-07-15 12:14:25.000000000","message":"Changed this too as suggested.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        :param role: the role to be granted on the server."},{"line_number":301,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":302,"context_line":"        :param user: the user to have the role granted."},{"line_number":303,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":304,"context_line":"        :param group: the group to have the role granted."},{"line_number":305,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":306,"context_line":"        :param domain: the domain in which the role will be granted."},{"line_number":307,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":308,"context_line":"        :param project: the project in which the role will be granted."}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_0af425cd","line":305,"range":{"start_line":302,"start_character":9,"end_line":305,"end_character":67},"updated":"2016-07-15 12:14:25.000000000","message":"Earlier missed the Domain or Project must be specified part here.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":336,"context_line":"              os_inherit_extension_inherited\u003dFalse, **kwargs):"},{"line_number":337,"context_line":"        \"\"\"Check if a user or group has a role on a domain or project."},{"line_number":338,"context_line":""},{"line_number":339,"context_line":"        :param user: check for role grants for the specified user."},{"line_number":340,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":341,"context_line":"        :param group: check for role grants for the specified group."},{"line_number":342,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":343,"context_line":"        :param domain: check for role grants on the specified domain."},{"line_number":344,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":345,"context_line":"        :param project: check for role grants on the specified project."}],"source_content_type":"text/x-python","patch_set":3,"id":"3aaa91ec_ca285d36","line":342,"range":{"start_line":339,"start_character":8,"end_line":342,"end_character":67},"updated":"2016-07-15 12:14:25.000000000","message":"same as above.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"b5022bf576610e805b200c6be874df3244ddd050","unresolved":false,"context_lines":[{"line_number":393,"context_line":"                                                    projects in the hierarchy."},{"line_number":394,"context_line":"        :param kwargs: any other attribute provided will be passed to server."},{"line_number":395,"context_line":""},{"line_number":396,"context_line":"        :returns: the revoked role returned from server."},{"line_number":397,"context_line":"        :rtype: list of :class:`keystoneclient.v3.roles.Role`"},{"line_number":398,"context_line":""},{"line_number":399,"context_line":"        \"\"\""},{"line_number":400,"context_line":"        self._require_domain_xor_project(domain, project)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_1b546752","line":397,"range":{"start_line":396,"start_character":8,"end_line":397,"end_character":61},"updated":"2016-07-15 12:14:25.000000000","message":"Got it wrong before.","commit_id":"39f093a16db6896cebd57ae4b114df3a04c64451"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3e6d27db27ac503c336306071f6f8362a24949c4","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: None."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_36039375","line":137,"range":{"start_line":137,"start_character":9,"end_line":137,"end_character":22},"updated":"2016-07-18 11:52:17.000000000","message":"don\u0027t think this is necessary since it is the default value of methods without a return","commit_id":"32abcafae2472678848213f97d0c7c4369a888f6"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"e058da662a0ba6d0770b918b178f64f18e736629","unresolved":false,"context_lines":[{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"        :returns: None."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"        \"\"\""},{"line_number":140,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_f456855c","line":137,"range":{"start_line":137,"start_character":9,"end_line":137,"end_character":22},"in_reply_to":"dada55a8_36039375","updated":"2016-07-26 19:55:49.000000000","message":"Done","commit_id":"32abcafae2472678848213f97d0c7c4369a888f6"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"3e6d27db27ac503c336306071f6f8362a24949c4","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":185,"context_line":"                       server."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        :returns: the specified role inference returned from server if it"},{"line_number":188,"context_line":"                  exists."},{"line_number":189,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        :returns: Response object with 204 status if specified role inference"},{"line_number":192,"context_line":"                  doesn\u0027t exist."},{"line_number":193,"context_line":"        :rtype: :class:`requests.models.Response`"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_d64e77c0","line":193,"range":{"start_line":187,"start_character":0,"end_line":193,"end_character":49},"updated":"2016-07-18 11:52:17.000000000","message":"shouldn\u0027t this be merged in a single statement?","commit_id":"32abcafae2472678848213f97d0c7c4369a888f6"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"e058da662a0ba6d0770b918b178f64f18e736629","unresolved":false,"context_lines":[{"line_number":184,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":185,"context_line":"                       server."},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"        :returns: the specified role inference returned from server if it"},{"line_number":188,"context_line":"                  exists."},{"line_number":189,"context_line":"        :rtype: :class:`keystoneclient.v3.roles.InferenceRule`"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        :returns: Response object with 204 status if specified role inference"},{"line_number":192,"context_line":"                  doesn\u0027t exist."},{"line_number":193,"context_line":"        :rtype: :class:`requests.models.Response`"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":"        \"\"\""},{"line_number":196,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":7,"id":"dada55a8_b7d08f54","line":193,"range":{"start_line":187,"start_character":0,"end_line":193,"end_character":49},"in_reply_to":"dada55a8_d64e77c0","updated":"2016-07-26 19:55:49.000000000","message":"Done","commit_id":"32abcafae2472678848213f97d0c7c4369a888f6"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"40b4c7dbd6a083cd7db94ff1372f4e2c1b4ca7e1","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        :param group: the specified group to have the role granted on a"},{"line_number":305,"context_line":"                      resource. Domain or project must be specified."},{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: the domain in which the role will be granted."},{"line_number":308,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":309,"context_line":"        :param project: the project in which the role will be granted."},{"line_number":310,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_61f3870b","line":307,"range":{"start_line":307,"start_character":23,"end_line":307,"end_character":68},"updated":"2016-07-27 21:50:10.000000000","message":"I guess you should say that either user or group just be specified with this. Same with all the list/revoke/check","commit_id":"3a29b1f06cab09c14e9ac4a949af971968582c74"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d422c3483a28062202c4ed1fef0c486ed23cd1d7","unresolved":false,"context_lines":[{"line_number":304,"context_line":"        :param group: the specified group to have the role granted on a"},{"line_number":305,"context_line":"                      resource. Domain or project must be specified."},{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: the domain in which the role will be granted."},{"line_number":308,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":309,"context_line":"        :param project: the project in which the role will be granted."},{"line_number":310,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_6fb14ce1","line":307,"range":{"start_line":307,"start_character":23,"end_line":307,"end_character":68},"in_reply_to":"bacf61ea_61f3870b","updated":"2016-07-29 14:50:57.000000000","message":"Done","commit_id":"3a29b1f06cab09c14e9ac4a949af971968582c74"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"40b4c7dbd6a083cd7db94ff1372f4e2c1b4ca7e1","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: the domain in which the role will be granted."},{"line_number":308,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":309,"context_line":"        :param project: the project in which the role will be granted."},{"line_number":310,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":311,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":312,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_a1dd7f72","line":309,"range":{"start_line":309,"start_character":24,"end_line":309,"end_character":70},"updated":"2016-07-27 21:50:10.000000000","message":"ditto","commit_id":"3a29b1f06cab09c14e9ac4a949af971968582c74"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"d422c3483a28062202c4ed1fef0c486ed23cd1d7","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: the domain in which the role will be granted."},{"line_number":308,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":309,"context_line":"        :param project: the project in which the role will be granted."},{"line_number":310,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":311,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":312,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_4fb448d0","line":309,"range":{"start_line":309,"start_character":24,"end_line":309,"end_character":70},"in_reply_to":"bacf61ea_67ea1e11","updated":"2016-07-29 14:50:57.000000000","message":"Done","commit_id":"3a29b1f06cab09c14e9ac4a949af971968582c74"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"528fa825f3a9a61cb41fd437f1c33ff75c4d541e","unresolved":false,"context_lines":[{"line_number":306,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":307,"context_line":"        :param domain: the domain in which the role will be granted."},{"line_number":308,"context_line":"        :type domain: str or :class:`keystoneclient.v3.domains.Domain`"},{"line_number":309,"context_line":"        :param project: the project in which the role will be granted."},{"line_number":310,"context_line":"        :type project: str or :class:`keystoneclient.v3.projects.Project`"},{"line_number":311,"context_line":"        :param bool os_inherit_extension_inherited: OS-INHERIT will be used."},{"line_number":312,"context_line":"                                                    It provides the ability for"}],"source_content_type":"text/x-python","patch_set":9,"id":"bacf61ea_67ea1e11","line":309,"range":{"start_line":309,"start_character":24,"end_line":309,"end_character":70},"in_reply_to":"bacf61ea_a1dd7f72","updated":"2016-07-29 11:23:10.000000000","message":"maybe also say that projects/domains are mutually exclusive?","commit_id":"3a29b1f06cab09c14e9ac4a949af971968582c74"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"758901998788f5c06764e7b7383aa6979ca1b9dd","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specific inference rule."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies ``implied_role``."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_f8721610","line":177,"updated":"2016-07-29 19:33:35.000000000","message":"Nothing is retirved on a HEAD request.","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specific inference rule."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies ``implied_role``."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_057c1e71","line":177,"in_reply_to":"bacf61ea_0b1b9681","updated":"2016-08-03 17:14:11.000000000","message":"Thanks for pointing out Dolph and Samuel. Can you please give a link or comment on what is exactly returned in both the cases. I am not very sure.\n\nI looked up for it in [1]. I think it should be   \n:returns: response object with 204 status returned from server.\n:rtype: :class:`requests.models.Response` \n\n[1] http://specs.openstack.org/openstack/keystone-specs/api/v3/identity-api-v3.html#confirm-a-role-inference-rule","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specific inference rule."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies ``implied_role``."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_0b1b9681","line":177,"in_reply_to":"bacf61ea_f8721610","updated":"2016-08-03 15:59:58.000000000","message":"++ even if this method is returning something (a response obj), it\u0027s not an inference rule","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        \"\"\"List roles and role grants."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        :param user: filter in role grants for the specified user on a"},{"line_number":227,"context_line":"                     resource. Domain or project must be specified."},{"line_number":228,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":229,"context_line":"        :param group: filter in role grants for the specified group on a"},{"line_number":230,"context_line":"                      resource. Domain or project must be specified."}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_010895d8","line":227,"updated":"2016-08-03 15:59:58.000000000","message":"please add \"User and group are mutually exclusive.\"","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":224,"context_line":"        \"\"\"List roles and role grants."},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        :param user: filter in role grants for the specified user on a"},{"line_number":227,"context_line":"                     resource. Domain or project must be specified."},{"line_number":228,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":229,"context_line":"        :param group: filter in role grants for the specified group on a"},{"line_number":230,"context_line":"                      resource. Domain or project must be specified."}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_4220cc49","line":227,"in_reply_to":"bacf61ea_010895d8","updated":"2016-08-03 17:14:11.000000000","message":"Done","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                     resource. Domain or project must be specified."},{"line_number":228,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":229,"context_line":"        :param group: filter in role grants for the specified group on a"},{"line_number":230,"context_line":"                      resource. Domain or project must be specified."},{"line_number":231,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":232,"context_line":"        :param domain: filter in role grants on the specified domain. Either"},{"line_number":233,"context_line":"                       user or group must be specified. Project and domain"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_a1f9c9ca","line":230,"updated":"2016-08-03 15:59:58.000000000","message":"ditto","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":227,"context_line":"                     resource. Domain or project must be specified."},{"line_number":228,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":229,"context_line":"        :param group: filter in role grants for the specified group on a"},{"line_number":230,"context_line":"                      resource. Domain or project must be specified."},{"line_number":231,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":232,"context_line":"        :param domain: filter in role grants on the specified domain. Either"},{"line_number":233,"context_line":"                       user or group must be specified. Project and domain"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_821ac415","line":230,"in_reply_to":"bacf61ea_a1f9c9ca","updated":"2016-08-03 17:14:11.000000000","message":"Done","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            **kwargs)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def delete(self, role):"},{"line_number":284,"context_line":"        \"\"\"Delete a role or implied role."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        When a role is deleted all its implied roles will be deleted as well."},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_c68b3367","line":284,"range":{"start_line":284,"start_character":24,"end_line":284,"end_character":40},"updated":"2016-08-03 15:59:58.000000000","message":"I don\u0027t think this is necessary. \"Delete a role.\" is enough. Also, why aren\u0027t we talking about prior roles too (if the current is correct).","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            **kwargs)"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"    def delete(self, role):"},{"line_number":284,"context_line":"        \"\"\"Delete a role or implied role."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        When a role is deleted all its implied roles will be deleted as well."},{"line_number":287,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_a291c848","line":284,"range":{"start_line":284,"start_character":24,"end_line":284,"end_character":40},"in_reply_to":"bacf61ea_c68b3367","updated":"2016-08-03 17:14:11.000000000","message":"Yes, I should have included both. I will leave it as you said \"Delete a role.\" to keep docs simple.","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    def delete(self, role):"},{"line_number":284,"context_line":"        \"\"\"Delete a role or implied role."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        When a role is deleted all its implied roles will be deleted as well."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        :param role: the role to be deleted on the server."},{"line_number":289,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_864f7bbd","line":286,"range":{"start_line":286,"start_character":38,"end_line":286,"end_character":77},"updated":"2016-08-03 15:59:58.000000000","message":"this is wrong. It won\u0027t delete the roles that are implied by the delete role, but only the role inferences that have the deleted role as prior role.","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":283,"context_line":"    def delete(self, role):"},{"line_number":284,"context_line":"        \"\"\"Delete a role or implied role."},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        When a role is deleted all its implied roles will be deleted as well."},{"line_number":287,"context_line":""},{"line_number":288,"context_line":"        :param role: the role to be deleted on the server."},{"line_number":289,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_82fc843f","line":286,"range":{"start_line":286,"start_character":38,"end_line":286,"end_character":77},"in_reply_to":"bacf61ea_864f7bbd","updated":"2016-08-03 17:14:11.000000000","message":"Done","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        :param role: the role to be granted on the server."},{"line_number":304,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":305,"context_line":"        :param user: the specified user to have the role granted on a resource."},{"line_number":306,"context_line":"                     Domain or project must be specified."},{"line_number":307,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":308,"context_line":"        :param group: the specified group to have the role granted on a"},{"line_number":309,"context_line":"                      resource. Domain or project must be specified."}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_41cd6db6","line":306,"updated":"2016-08-03 15:59:58.000000000","message":"Would be nice to add \"User and group are mutually exclusive.\"","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":303,"context_line":"        :param role: the role to be granted on the server."},{"line_number":304,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":305,"context_line":"        :param user: the specified user to have the role granted on a resource."},{"line_number":306,"context_line":"                     Domain or project must be specified."},{"line_number":307,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":308,"context_line":"        :param group: the specified group to have the role granted on a"},{"line_number":309,"context_line":"                      resource. Domain or project must be specified."}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_e2b8e077","line":306,"in_reply_to":"bacf61ea_41cd6db6","updated":"2016-08-03 17:14:11.000000000","message":"Done","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"b4935d6cc44ae9486f6d6db9c559b02b12f6454e","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                     Domain or project must be specified."},{"line_number":307,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":308,"context_line":"        :param group: the specified group to have the role granted on a"},{"line_number":309,"context_line":"                      resource. Domain or project must be specified."},{"line_number":310,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":311,"context_line":"        :param domain: the domain in which the role will be granted. Either"},{"line_number":312,"context_line":"                       user or group must be specified. Project and domain"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_e1be21fe","line":309,"updated":"2016-08-03 15:59:58.000000000","message":"same for this and for the other occurrences below (other grant methods)","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"6548333e0e707514d79b8bec4a265b402883fdbc","unresolved":false,"context_lines":[{"line_number":306,"context_line":"                     Domain or project must be specified."},{"line_number":307,"context_line":"        :type user: str or :class:`keystoneclient.v3.users.User`"},{"line_number":308,"context_line":"        :param group: the specified group to have the role granted on a"},{"line_number":309,"context_line":"                      resource. Domain or project must be specified."},{"line_number":310,"context_line":"        :type group: str or :class:`keystoneclient.v3.groups.Group`"},{"line_number":311,"context_line":"        :param domain: the domain in which the role will be granted. Either"},{"line_number":312,"context_line":"                       user or group must be specified. Project and domain"}],"source_content_type":"text/x-python","patch_set":11,"id":"bacf61ea_22ab1820","line":309,"in_reply_to":"bacf61ea_e1be21fe","updated":"2016-08-03 17:14:11.000000000","message":"Done","commit_id":"1563db0929cb2deb259506d434968abf489a098b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"62d64e5aa92fd7bdcb76b89d5bf5945beb3769d9","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specific inference rule."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies ``implied_role``."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_77adc887","line":177,"range":{"start_line":177,"start_character":11,"end_line":177,"end_character":55},"updated":"2016-08-03 18:55:50.000000000","message":"Check if an inference rule exists.\n\n(it doesn\u0027t retrieve it)","commit_id":"37ef2a2148e7f00a3454fb6dd07f7ae25c88b5ba"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"3c2e4602212ff376a75d1de25812b49974537597","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        return super(RoleManager, self).get(tail\u003durl_tail, **kwargs)"},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"    def check_implied(self, prior_role, implied_role, **kwargs):"},{"line_number":177,"context_line":"        \"\"\"Check and retrieve a specific inference rule."},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"        :param prior_role: the role which implies ``implied_role``."},{"line_number":180,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_69ca1051","line":177,"range":{"start_line":177,"start_character":11,"end_line":177,"end_character":55},"in_reply_to":"bacf61ea_77adc887","updated":"2016-08-03 19:23:47.000000000","message":"Done","commit_id":"37ef2a2148e7f00a3454fb6dd07f7ae25c88b5ba"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"62d64e5aa92fd7bdcb76b89d5bf5945beb3769d9","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":184,"context_line":"                       server."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        :returns: response object with 204 status returned from server."},{"line_number":187,"context_line":"        :rtype: :class:`requests.models.Response`"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_57a88477","line":186,"range":{"start_line":186,"start_character":39,"end_line":186,"end_character":42},"updated":"2016-08-03 18:55:50.000000000","message":"200","commit_id":"37ef2a2148e7f00a3454fb6dd07f7ae25c88b5ba"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"3c2e4602212ff376a75d1de25812b49974537597","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":184,"context_line":"                       server."},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        :returns: response object with 204 status returned from server."},{"line_number":187,"context_line":"        :rtype: :class:`requests.models.Response`"},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"bacf61ea_a9db681a","line":186,"range":{"start_line":186,"start_character":39,"end_line":186,"end_character":42},"in_reply_to":"bacf61ea_57a88477","updated":"2016-08-03 19:23:47.000000000","message":"Done","commit_id":"37ef2a2148e7f00a3454fb6dd07f7ae25c88b5ba"},{"author":{"_account_id":11022,"name":"Rodrigo Duarte Sousa","email":"rodrigodsousa@gmail.com","username":"rodrigods"},"change_message_id":"556137ed140bcf4f1d34bf62469cf4f9af3d1ab3","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bacf61ea_135a9983","line":136,"updated":"2016-08-03 22:07:51.000000000","message":"nit: remove this line","commit_id":"1ea2684d84d426b31cc46314a836d5387c206b87"},{"author":{"_account_id":18176,"name":"Nisha Yadav","email":"ynisha11@gmail.com","username":"ynisha11"},"change_message_id":"2506be8c3738d3bbe4ba8bb5c20e9853cd392725","unresolved":false,"context_lines":[{"line_number":133,"context_line":"        :type role: str or :class:`keystoneclient.v3.roles.Role`"},{"line_number":134,"context_line":"        :param kwargs: any other attribute provided will be passed to the"},{"line_number":135,"context_line":"                       server."},{"line_number":136,"context_line":""},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        \"\"\""},{"line_number":139,"context_line":"        url_tail \u003d self._implied_role_url_tail(prior_role, implied_role)"}],"source_content_type":"text/x-python","patch_set":13,"id":"bacf61ea_6995dee2","line":136,"in_reply_to":"bacf61ea_135a9983","updated":"2016-08-04 05:46:27.000000000","message":"Done","commit_id":"1ea2684d84d426b31cc46314a836d5387c206b87"}]}
