)]}'
{"keystone/assignment/controllers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"71e6187de3233435998a174da64cb9166df9fb32","unresolved":false,"context_lines":[{"line_number":88,"context_line":""},{"line_number":89,"context_line":"    @controller.v2_deprecated"},{"line_number":90,"context_line":"    def get_role(self, request, role_id):"},{"line_number":91,"context_line":"        self.assert_admin(request.context_dit)"},{"line_number":92,"context_line":"        return {\u0027role\u0027: self.role_api.get_role(role_id)}"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @controller.v2_deprecated"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_c1914954","line":91,"range":{"start_line":91,"start_character":34,"end_line":91,"end_character":45},"updated":"2016-05-19 15:40:34.000000000","message":"context_dict*","commit_id":"b986e51307443ff997462bbfab1ada2c0ca0ba8a"}],"keystone/oauth1/controllers.py":[{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bac0a11d2bf70a43bf60cbb5bd8b9804eaab409b","unresolved":false,"context_lines":[{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    @controller.protected()"},{"line_number":123,"context_line":"    def list_access_tokens(self, request, user_id):"},{"line_number":124,"context_line":"        env \u003d request.context_dict.get(\u0027environment\u0027, {})"},{"line_number":125,"context_line":"        auth_context \u003d env.get(\u0027KEYSTONE_AUTH_CONTEXT\u0027, {})"},{"line_number":126,"context_line":"        if auth_context.get(\u0027is_delegated_auth\u0027):"},{"line_number":127,"context_line":"            raise exception.Forbidden("}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_58ab5c75","line":124,"updated":"2016-06-13 14:54:01.000000000","message":"Not relevant to this change - but will this ever not be set? Can we just ensure it\u0027s set? Bah.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bac0a11d2bf70a43bf60cbb5bd8b9804eaab409b","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    @controller.protected()"},{"line_number":123,"context_line":"    def list_access_tokens(self, request, user_id):"},{"line_number":124,"context_line":"        env \u003d request.context_dict.get(\u0027environment\u0027, {})"},{"line_number":125,"context_line":"        auth_context \u003d env.get(\u0027KEYSTONE_AUTH_CONTEXT\u0027, {})"},{"line_number":126,"context_line":"        if auth_context.get(\u0027is_delegated_auth\u0027):"},{"line_number":127,"context_line":"            raise exception.Forbidden("},{"line_number":128,"context_line":"                _(\u0027Cannot list request tokens\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_b8b240e3","line":125,"updated":"2016-06-13 14:54:01.000000000","message":"Same here, sort of, although this deserves a separate, unrelated rant.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"539ef3717e95598c2416ee6806af53e4ccb2dbde","unresolved":false,"context_lines":[{"line_number":122,"context_line":"    @controller.protected()"},{"line_number":123,"context_line":"    def list_access_tokens(self, request, user_id):"},{"line_number":124,"context_line":"        env \u003d request.context_dict.get(\u0027environment\u0027, {})"},{"line_number":125,"context_line":"        auth_context \u003d env.get(\u0027KEYSTONE_AUTH_CONTEXT\u0027, {})"},{"line_number":126,"context_line":"        if auth_context.get(\u0027is_delegated_auth\u0027):"},{"line_number":127,"context_line":"            raise exception.Forbidden("},{"line_number":128,"context_line":"                _(\u0027Cannot list request tokens\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_6652d968","line":125,"in_reply_to":"7aa08908_b8b240e3","updated":"2016-06-14 05:35:50.000000000","message":"Really hoping in future to simply replace these with actual properties on the request.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"}],"keystone/resource/controllers.py":[{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b0c18f28acb0c4b9bf3b4e1fdc2c67a26928d916","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            domain_id, config, group, option)"},{"line_number":206,"context_line":"        return wsgi.render_response(body\u003d{self.member_name: ref})"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def update_domain_config_group(self, context, domain_id, group, config):"},{"line_number":209,"context_line":"        self.resource_api.get_domain(domain_id)"},{"line_number":210,"context_line":"        return self.update_domain_config("},{"line_number":211,"context_line":"            context, domain_id, config, group, option\u003dNone)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_6d5903fd","line":208,"range":{"start_line":208,"start_character":41,"end_line":208,"end_character":48},"updated":"2016-06-14 13:24:30.000000000","message":"why leave this line alone? maybe rename \"context\" here and L211 to \"request\" so that it looks more clear.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"adbe9f20806ea66574b56b519b5e6b46a708b954","unresolved":false,"context_lines":[{"line_number":205,"context_line":"            domain_id, config, group, option)"},{"line_number":206,"context_line":"        return wsgi.render_response(body\u003d{self.member_name: ref})"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"    def update_domain_config_group(self, context, domain_id, group, config):"},{"line_number":209,"context_line":"        self.resource_api.get_domain(domain_id)"},{"line_number":210,"context_line":"        return self.update_domain_config("},{"line_number":211,"context_line":"            context, domain_id, config, group, option\u003dNone)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_21ded13d","line":208,"range":{"start_line":208,"start_character":41,"end_line":208,"end_character":48},"in_reply_to":"7aa08908_6d5903fd","updated":"2016-06-14 18:11:06.000000000","message":"I left a number of these as context because they are not called from an API but from other functions. Basically i was trying to do the minimum in this patch to make it work and we can come back for cleanup later.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b0c18f28acb0c4b9bf3b4e1fdc2c67a26928d916","unresolved":false,"context_lines":[{"line_number":208,"context_line":"    def update_domain_config_group(self, context, domain_id, group, config):"},{"line_number":209,"context_line":"        self.resource_api.get_domain(domain_id)"},{"line_number":210,"context_line":"        return self.update_domain_config("},{"line_number":211,"context_line":"            context, domain_id, config, group, option\u003dNone)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def update_domain_config_only(self, context, domain_id, config):"},{"line_number":214,"context_line":"        self.resource_api.get_domain(domain_id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_8d6b8ff0","line":211,"range":{"start_line":211,"start_character":12,"end_line":211,"end_character":19},"updated":"2016-06-14 13:24:30.000000000","message":"it will be consistent with L202.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"},{"author":{"_account_id":13063,"name":"WEI CHEN","email":"dave.jungler@gmail.com","username":"wei.d.chen"},"change_message_id":"b0c18f28acb0c4b9bf3b4e1fdc2c67a26928d916","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        return self.update_domain_config("},{"line_number":211,"context_line":"            context, domain_id, config, group, option\u003dNone)"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"    def update_domain_config_only(self, context, domain_id, config):"},{"line_number":214,"context_line":"        self.resource_api.get_domain(domain_id)"},{"line_number":215,"context_line":"        return self.update_domain_config("},{"line_number":216,"context_line":"            context, domain_id, config, group\u003dNone, option\u003dNone)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_2d0a5bd2","line":213,"range":{"start_line":213,"start_character":40,"end_line":213,"end_character":47},"updated":"2016-06-14 13:24:30.000000000","message":"and here.","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"}],"keystone/tests/unit/core.py":[{"author":{"_account_id":19985,"name":"Ryosuke Mizuno","email":"r-mizuno@rs.jp.nec.com","username":"r-mizuno"},"change_message_id":"ca493cf976c1e8c06d3339c0dafb3203915d5021","unresolved":false,"context_lines":[{"line_number":46,"context_line":"from keystone.common import config"},{"line_number":47,"context_line":"from keystone.common import dependency"},{"line_number":48,"context_line":"from keystone.common.kvs import core as kvs_core"},{"line_number":49,"context_line":"from keystone.common import ldap as ks_ldap"},{"line_number":50,"context_line":"from keystone.common import request"},{"line_number":51,"context_line":"from keystone.common import sql"},{"line_number":52,"context_line":"from keystone import exception"}],"source_content_type":"text/x-python","patch_set":6,"id":"7aa08908_47cc9035","line":49,"range":{"start_line":49,"start_character":36,"end_line":49,"end_character":43},"updated":"2016-06-06 10:16:44.000000000","message":"it is duplicate with the 53 line.","commit_id":"6ab39a9ad55fd12e7199d8cd8c4a390f5d0e179f"},{"author":{"_account_id":4,"name":"Dolph Mathews","email":"dolph.mathews@gmail.com","username":"dolph"},"change_message_id":"bac0a11d2bf70a43bf60cbb5bd8b9804eaab409b","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        for k in (\u0027is_admin\u0027, \u0027query_string\u0027):"},{"line_number":582,"context_line":"            try:"},{"line_number":583,"context_line":"                context[k] \u003d kwargs.pop(k)"},{"line_number":584,"context_line":"            except KeyError:"},{"line_number":585,"context_line":"                pass"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        req \u003d request.Request.blank(path\u003dpath, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_f887a8b2","line":584,"updated":"2016-06-13 14:54:01.000000000","message":"nit: You could replace the try/except with pop(k, None):\n\n  https://docs.python.org/2/library/stdtypes.html#dict.pop","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"539ef3717e95598c2416ee6806af53e4ccb2dbde","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        for k in (\u0027is_admin\u0027, \u0027query_string\u0027):"},{"line_number":582,"context_line":"            try:"},{"line_number":583,"context_line":"                context[k] \u003d kwargs.pop(k)"},{"line_number":584,"context_line":"            except KeyError:"},{"line_number":585,"context_line":"                pass"},{"line_number":586,"context_line":""},{"line_number":587,"context_line":"        req \u003d request.Request.blank(path\u003dpath, **kwargs)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7aa08908_46e51da2","line":584,"in_reply_to":"7aa08908_f887a8b2","updated":"2016-06-14 05:35:50.000000000","message":"In which case you would have None values set and then in update() at L588 you would override the real values with Nones","commit_id":"da6ea7e2243aa13e626a2dbd5407477fcbd79c9c"}]}
