)]}'
{"keystone/assignment/controllers.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d7b404547dccef278175c9761f56b2dd6508bf76","unresolved":false,"context_lines":[{"line_number":334,"context_line":"        # If there is no domain_id filter defined, then we only want to return"},{"line_number":335,"context_line":"        # global roles, so we set the domain_id filter to None."},{"line_number":336,"context_line":"        # NOTE(jamielennox): this is still using context_dict because it\u0027s"},{"line_number":337,"context_line":"        # writing to the query dict. Why is it writing to the query dict?"},{"line_number":338,"context_line":"        params \u003d request.context_dict[\u0027query_string\u0027]"},{"line_number":339,"context_line":"        if \u0027domain_id\u0027 not in params:"},{"line_number":340,"context_line":"            request.context_dict[\u0027query_string\u0027][\u0027domain_id\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_1f7ba2f5","line":337,"range":{"start_line":337,"start_character":37,"end_line":337,"end_character":73},"updated":"2016-06-17 05:37:25.000000000","message":"Please add a TODO or FIXME note here so we now there is something to be looked at","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"809047f0f246ada2986a98a6fc8516e1a9e5b13a","unresolved":false,"context_lines":[{"line_number":333,"context_line":"    def list_roles_wrapper(self, request):"},{"line_number":334,"context_line":"        # If there is no domain_id filter defined, then we only want to return"},{"line_number":335,"context_line":"        # global roles, so we set the domain_id filter to None."},{"line_number":336,"context_line":"        # NOTE(jamielennox): this is still using context_dict because it\u0027s"},{"line_number":337,"context_line":"        # writing to the query dict. Why is it writing to the query dict?"},{"line_number":338,"context_line":"        params \u003d request.context_dict[\u0027query_string\u0027]"},{"line_number":339,"context_line":"        if \u0027domain_id\u0027 not in params:"},{"line_number":340,"context_line":"            request.context_dict[\u0027query_string\u0027][\u0027domain_id\u0027] \u003d None"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_af0fcedf","line":337,"range":{"start_line":336,"start_character":7,"end_line":337,"end_character":73},"updated":"2016-06-29 01:39:10.000000000","message":"can we fix this right after this patchset?","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"}],"keystone/identity/controllers.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d7b404547dccef278175c9761f56b2dd6508bf76","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        # NOTE(termie): i can\u0027t imagine that this really wants all the data"},{"line_number":45,"context_line":"        #               about every single user in the system..."},{"line_number":46,"context_line":"        if \u0027name\u0027 in request.params:"},{"line_number":47,"context_line":"            return self.get_user_by_name(request, request.params[\u0027name\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        self.assert_admin(request.context_dict)"},{"line_number":50,"context_line":"        user_list \u003d self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_1fc9e225","line":47,"range":{"start_line":47,"start_character":64,"end_line":47,"end_character":72},"updated":"2016-06-17 05:37:25.000000000","message":"What if this attribute isn\u0027t there ? We should keep it with .get","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"55c664517d8c827ac5c02c1180721e41d193ed3e","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        # NOTE(termie): i can\u0027t imagine that this really wants all the data"},{"line_number":45,"context_line":"        #               about every single user in the system..."},{"line_number":46,"context_line":"        if \u0027name\u0027 in request.params:"},{"line_number":47,"context_line":"            return self.get_user_by_name(request, request.params[\u0027name\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        self.assert_admin(request.context_dict)"},{"line_number":50,"context_line":"        user_list \u003d self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_d316fc47","line":47,"range":{"start_line":47,"start_character":64,"end_line":47,"end_character":72},"in_reply_to":"7aa08908_1c0a6120","updated":"2016-06-18 14:47:47.000000000","message":"You\u0027re correct, I messed up when comparing the diffs","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"fd3d9fe0d81c6b7b7235d0c2cace1c8b97103afa","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        # NOTE(termie): i can\u0027t imagine that this really wants all the data"},{"line_number":45,"context_line":"        #               about every single user in the system..."},{"line_number":46,"context_line":"        if \u0027name\u0027 in request.params:"},{"line_number":47,"context_line":"            return self.get_user_by_name(request, request.params[\u0027name\u0027])"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"        self.assert_admin(request.context_dict)"},{"line_number":50,"context_line":"        user_list \u003d self.identity_api.list_users("}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_1c0a6120","line":47,"range":{"start_line":47,"start_character":64,"end_line":47,"end_character":72},"in_reply_to":"7aa08908_1fc9e225","updated":"2016-06-17 22:26:03.000000000","message":"In the line above we check \u0027name\u0027 is in params - i don\u0027t see how it possible this could fail.","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"}],"keystone/resource/controllers.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"610e66903fcdca6093fd0967f32ca3640698644f","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _expand_project_ref(self, request, ref):"},{"line_number":273,"context_line":"        params \u003d request.params"},{"line_number":274,"context_line":"        context \u003d request.context_dict"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        parents_as_list \u003d \u0027parents_as_list\u0027 in params and ("},{"line_number":277,"context_line":"            self.query_filter_is_true(params[\u0027parents_as_list\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_d20bd229","line":274,"range":{"start_line":274,"start_character":8,"end_line":274,"end_character":38},"updated":"2016-06-17 04:33:09.000000000","message":"not needed?","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"d7b404547dccef278175c9761f56b2dd6508bf76","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _expand_project_ref(self, request, ref):"},{"line_number":273,"context_line":"        params \u003d request.params"},{"line_number":274,"context_line":"        context \u003d request.context_dict"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        parents_as_list \u003d \u0027parents_as_list\u0027 in params and ("},{"line_number":277,"context_line":"            self.query_filter_is_true(params[\u0027parents_as_list\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_dff63a5c","line":274,"range":{"start_line":274,"start_character":8,"end_line":274,"end_character":38},"in_reply_to":"7aa08908_d20bd229","updated":"2016-06-17 05:37:25.000000000","message":"this is used in L298, L303 and L311; are you suggesting to simply call request.context_dict there instead ?","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"33b31548d956f0c58979276e655f53199a8b63f2","unresolved":false,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"    def _expand_project_ref(self, request, ref):"},{"line_number":273,"context_line":"        params \u003d request.params"},{"line_number":274,"context_line":"        context \u003d request.context_dict"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        parents_as_list \u003d \u0027parents_as_list\u0027 in params and ("},{"line_number":277,"context_line":"            self.query_filter_is_true(params[\u0027parents_as_list\u0027]))"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aa08908_3f301e07","line":274,"range":{"start_line":274,"start_character":8,"end_line":274,"end_character":38},"in_reply_to":"7aa08908_dff63a5c","updated":"2016-06-17 05:42:29.000000000","message":"oops, just didn\u0027t see it there -- the find function in new gerrit pwned me :(","commit_id":"24b3e7c69dc97eaff6649027bb76379df342f384"}],"keystone/tests/unit/core.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ec5e8d358287fdb6abe1ac7b980e31f30a6804b9","unresolved":false,"context_lines":[{"line_number":574,"context_line":"    def make_request(self, path\u003d\u0027/\u0027, **kwargs):"},{"line_number":575,"context_line":"        context \u003d {}"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        try:"},{"line_number":578,"context_line":"            context[\u0027is_admin\u0027] \u003d kwargs.pop(\u0027is_admin\u0027)"},{"line_number":579,"context_line":"        except KeyError:"},{"line_number":580,"context_line":"            pass"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        req \u003d request.Request.blank(path\u003dpath, **kwargs)"},{"line_number":583,"context_line":"        req.context_dict.update(context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_9dddeb16","line":580,"range":{"start_line":577,"start_character":8,"end_line":580,"end_character":16},"updated":"2016-06-29 01:10:09.000000000","message":"i guess we don\u0027t keep query_string cause we have request.params","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"809047f0f246ada2986a98a6fc8516e1a9e5b13a","unresolved":false,"context_lines":[{"line_number":574,"context_line":"    def make_request(self, path\u003d\u0027/\u0027, **kwargs):"},{"line_number":575,"context_line":"        context \u003d {}"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        try:"},{"line_number":578,"context_line":"            context[\u0027is_admin\u0027] \u003d kwargs.pop(\u0027is_admin\u0027)"},{"line_number":579,"context_line":"        except KeyError:"},{"line_number":580,"context_line":"            pass"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        req \u003d request.Request.blank(path\u003dpath, **kwargs)"},{"line_number":583,"context_line":"        req.context_dict.update(context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_4fbd8ad6","line":580,"range":{"start_line":577,"start_character":0,"end_line":580,"end_character":16},"updated":"2016-06-29 01:39:10.000000000","message":"rewrite as context.pop(\u0027is_admin\u0027, None)","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"85629c02d0780818c7fa3fa9f5ac1ce53dbd75c7","unresolved":false,"context_lines":[{"line_number":574,"context_line":"    def make_request(self, path\u003d\u0027/\u0027, **kwargs):"},{"line_number":575,"context_line":"        context \u003d {}"},{"line_number":576,"context_line":""},{"line_number":577,"context_line":"        try:"},{"line_number":578,"context_line":"            context[\u0027is_admin\u0027] \u003d kwargs.pop(\u0027is_admin\u0027)"},{"line_number":579,"context_line":"        except KeyError:"},{"line_number":580,"context_line":"            pass"},{"line_number":581,"context_line":""},{"line_number":582,"context_line":"        req \u003d request.Request.blank(path\u003dpath, **kwargs)"},{"line_number":583,"context_line":"        req.context_dict.update(context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_cfc97a7b","line":580,"range":{"start_line":577,"start_character":8,"end_line":580,"end_character":16},"in_reply_to":"3aaa91ec_9dddeb16","updated":"2016-06-29 01:38:38.000000000","message":"right, we don\u0027t need to manually inject it into the context because it\u0027ll be correctly determined from the request object.","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"}],"keystone/tests/unit/test_v3_federation.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ec5e8d358287fdb6abe1ac7b980e31f30a6804b9","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            }"},{"line_number":208,"context_line":"        }"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def _inject_assertion(self, request, variant):"},{"line_number":211,"context_line":"        assertion \u003d getattr(mapping_fixtures, variant)"},{"line_number":212,"context_line":"        request.context_dict[\u0027environment\u0027].update(assertion)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_bd854708","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":25},"updated":"2016-06-29 01:10:09.000000000","message":"is this used any longer? you replaced one instance on line 163, may not be necessary any longer","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"85629c02d0780818c7fa3fa9f5ac1ce53dbd75c7","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            }"},{"line_number":208,"context_line":"        }"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def _inject_assertion(self, request, variant):"},{"line_number":211,"context_line":"        assertion \u003d getattr(mapping_fixtures, variant)"},{"line_number":212,"context_line":"        request.context_dict[\u0027environment\u0027].update(assertion)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_efe71610","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":25},"in_reply_to":"3aaa91ec_bd854708","updated":"2016-06-29 01:38:38.000000000","message":"it\u0027s still used in one place, i could probably just refactor that out.","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"809047f0f246ada2986a98a6fc8516e1a9e5b13a","unresolved":false,"context_lines":[{"line_number":207,"context_line":"            }"},{"line_number":208,"context_line":"        }"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"    def _inject_assertion(self, request, variant):"},{"line_number":211,"context_line":"        assertion \u003d getattr(mapping_fixtures, variant)"},{"line_number":212,"context_line":"        request.context_dict[\u0027environment\u0027].update(assertion)"},{"line_number":213,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_6fa166a9","line":210,"range":{"start_line":210,"start_character":8,"end_line":210,"end_character":25},"in_reply_to":"3aaa91ec_bd854708","updated":"2016-06-29 01:39:10.000000000","message":"same question","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ec5e8d358287fdb6abe1ac7b980e31f30a6804b9","unresolved":false,"context_lines":[{"line_number":3724,"context_line":"                          request, self.PROTOCOL)"},{"line_number":3725,"context_line":""},{"line_number":3726,"context_line":"    def test_federated_sso_missing_remote_id(self):"},{"line_number":3727,"context_line":"        environment \u003d copy.deepcopy(mapping_fixtures.EMPLOYEE_ASSERTION)"},{"line_number":3728,"context_line":"        request \u003d self.make_request(environ\u003denvironment,"},{"line_number":3729,"context_line":"                                    query_string\u003d\u0027origin\u003d%s\u0027 % self.ORIGIN)"},{"line_number":3730,"context_line":"        self.assertRaises(exception.Unauthorized,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_7db91fcb","line":3727,"range":{"start_line":3727,"start_character":22,"end_line":3727,"end_character":35},"updated":"2016-06-29 01:10:09.000000000","message":"why deepcopy some and not others?","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"85629c02d0780818c7fa3fa9f5ac1ce53dbd75c7","unresolved":false,"context_lines":[{"line_number":3724,"context_line":"                          request, self.PROTOCOL)"},{"line_number":3725,"context_line":""},{"line_number":3726,"context_line":"    def test_federated_sso_missing_remote_id(self):"},{"line_number":3727,"context_line":"        environment \u003d copy.deepcopy(mapping_fixtures.EMPLOYEE_ASSERTION)"},{"line_number":3728,"context_line":"        request \u003d self.make_request(environ\u003denvironment,"},{"line_number":3729,"context_line":"                                    query_string\u003d\u0027origin\u003d%s\u0027 % self.ORIGIN)"},{"line_number":3730,"context_line":"        self.assertRaises(exception.Unauthorized,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_2ff2bed2","line":3727,"range":{"start_line":3727,"start_character":22,"end_line":3727,"end_character":35},"in_reply_to":"3aaa91ec_7db91fcb","updated":"2016-06-29 01:38:38.000000000","message":"i deepcopy only the times where i\u0027m copying the whole environment. when you update(d) it doesn\u0027t change d so we don\u0027t need it there.","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"809047f0f246ada2986a98a6fc8516e1a9e5b13a","unresolved":false,"context_lines":[{"line_number":3724,"context_line":"                          request, self.PROTOCOL)"},{"line_number":3725,"context_line":""},{"line_number":3726,"context_line":"    def test_federated_sso_missing_remote_id(self):"},{"line_number":3727,"context_line":"        environment \u003d copy.deepcopy(mapping_fixtures.EMPLOYEE_ASSERTION)"},{"line_number":3728,"context_line":"        request \u003d self.make_request(environ\u003denvironment,"},{"line_number":3729,"context_line":"                                    query_string\u003d\u0027origin\u003d%s\u0027 % self.ORIGIN)"},{"line_number":3730,"context_line":"        self.assertRaises(exception.Unauthorized,"}],"source_content_type":"text/x-python","patch_set":2,"id":"3aaa91ec_8fae5296","line":3727,"range":{"start_line":3727,"start_character":22,"end_line":3727,"end_character":35},"in_reply_to":"3aaa91ec_7db91fcb","updated":"2016-06-29 01:39:10.000000000","message":"isolation? please comment on deepcopy reasons soon(ish)","commit_id":"ef70f52bef8589814f7f0aac935f93ea56be80c5"}]}
