)]}'
{"keystone/api/views/v3/endpoint.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"    def render(self, obj):"},{"line_number":34,"context_line":"        output \u003d super(EndpointView, self).render(obj)"},{"line_number":35,"context_line":"        output.pop(\u0027legacy_endpoint_id\u0027, None)"},{"line_number":36,"context_line":"        output[\u0027region\u0027] \u003d output[\u0027region_id\u0027]"},{"line_number":37,"context_line":"        return output"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_953bfaea","line":35,"updated":"2016-07-25 21:44:55.000000000","message":"Are we planning on having a corresponding v2.0 view?","commit_id":"8249c0d3a90638212a0f46e0fe10fd70f73df4e7"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":44,"context_line":""},{"line_number":45,"context_line":"    @property"},{"line_number":46,"context_line":"    def collection_path(self):"},{"line_number":47,"context_line":"        return \u0027/OS-EP-FILTER/%s\u0027 % self.collection_name"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class ProjectEndpointGroupView(base.View):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b0aa8cd0","line":47,"updated":"2016-07-25 21:44:55.000000000","message":"use \u0027/\u0027.join() to be consistent with line 56?","commit_id":"8249c0d3a90638212a0f46e0fe10fd70f73df4e7"}],"keystone/catalog/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":257,"context_line":"    @controller.protected()"},{"line_number":258,"context_line":"    def delete_region(self, request, region_id):"},{"line_number":259,"context_line":"        initiator \u003d notifications._get_request_audit_info(request.context_dict)"},{"line_number":260,"context_line":"        return self.catalog_api.delete_region(region_id, initiator)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":""},{"line_number":263,"context_line":"@dependency.requires(\u0027catalog_api\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_10c9d878","side":"PARENT","line":260,"updated":"2016-07-25 21:44:55.000000000","message":"We should use the view here, too:\n\n  return region_view.RegionView(request).delete(region_id)","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        self.get_member_from_driver \u003d self.catalog_api.get_endpoint"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"    @classmethod"},{"line_number":317,"context_line":"    def filter_endpoint(cls, ref):"},{"line_number":318,"context_line":"        if \u0027legacy_endpoint_id\u0027 in ref:"},{"line_number":319,"context_line":"            ref.pop(\u0027legacy_endpoint_id\u0027)"},{"line_number":320,"context_line":"        ref[\u0027region\u0027] \u003d ref[\u0027region_id\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_90994871","side":"PARENT","line":317,"updated":"2016-07-25 21:44:55.000000000","message":"++ nice","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":456,"context_line":"    def remove_endpoint_from_project(self, request, project_id, endpoint_id):"},{"line_number":457,"context_line":"        \"\"\"Remove the endpoint from the association with given project.\"\"\""},{"line_number":458,"context_line":"        self.catalog_api.remove_endpoint_from_project(endpoint_id,"},{"line_number":459,"context_line":"                                                      project_id)"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"    @controller.protected()"},{"line_number":462,"context_line":"    def list_projects_for_endpoint(self, request, endpoint_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_10aef884","side":"PARENT","line":459,"updated":"2016-07-25 21:44:55.000000000","message":"We could technically use a view for this.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":615,"context_line":"        self.resource_api.get_project(project_id)"},{"line_number":616,"context_line":"        self.catalog_api.get_endpoint_group(endpoint_group_id)"},{"line_number":617,"context_line":"        self.catalog_api.add_endpoint_group_to_project("},{"line_number":618,"context_line":"            endpoint_group_id, project_id)"},{"line_number":619,"context_line":""},{"line_number":620,"context_line":"    @controller.protected()"},{"line_number":621,"context_line":"    def remove_endpoint_group_from_project(self, request, endpoint_group_id,"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b0cc4c62","side":"PARENT","line":618,"updated":"2016-07-25 21:44:55.000000000","message":"We should use a view for this.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        self.resource_api.get_project(project_id)"},{"line_number":625,"context_line":"        self.catalog_api.get_endpoint_group(endpoint_group_id)"},{"line_number":626,"context_line":"        self.catalog_api.remove_endpoint_group_from_project("},{"line_number":627,"context_line":"            endpoint_group_id, project_id)"},{"line_number":628,"context_line":""},{"line_number":629,"context_line":"    @classmethod"},{"line_number":630,"context_line":"    def _add_self_referential_link(cls, context, ref):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_90fe6869","side":"PARENT","line":627,"updated":"2016-07-25 21:44:55.000000000","message":"Same comment here.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}],"keystone/federation/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":396,"context_line":"        headers \u003d self._build_response_headers(service_provider)"},{"line_number":397,"context_line":"        return wsgi.render_response(body\u003dresponse.to_string(),"},{"line_number":398,"context_line":"                                    status\u003d(\u0027200\u0027, \u0027OK\u0027),"},{"line_number":399,"context_line":"                                    headers\u003dheaders)"},{"line_number":400,"context_line":""},{"line_number":401,"context_line":"    @validation.validated(schema.saml_create, \u0027auth\u0027)"},{"line_number":402,"context_line":"    def create_ecp_assertion(self, context, auth):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_900ca895","side":"PARENT","line":399,"updated":"2016-07-25 21:44:55.000000000","message":"I assume we\u0027ll convert this once we have a view for auth?","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":416,"context_line":"        headers \u003d self._build_response_headers(service_provider)"},{"line_number":417,"context_line":"        return wsgi.render_response(body\u003decp_assertion.to_string(),"},{"line_number":418,"context_line":"                                    status\u003d(\u0027200\u0027, \u0027OK\u0027),"},{"line_number":419,"context_line":"                                    headers\u003dheaders)"},{"line_number":420,"context_line":""},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"@dependency.requires(\u0027assignment_api\u0027, \u0027resource_api\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b021ecfe","side":"PARENT","line":419,"updated":"2016-07-25 21:44:55.000000000","message":"We could use a view for this.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":530,"context_line":"            # Raise HTTP 500 in case Metadata file cannot be read."},{"line_number":531,"context_line":"            raise exception.MetadataFileError(reason\u003de)"},{"line_number":532,"context_line":"        return wsgi.render_response(body\u003dmetadata, status\u003d(\u0027200\u0027, \u0027OK\u0027),"},{"line_number":533,"context_line":"                                    headers\u003d[(\u0027Content-Type\u0027, \u0027text/xml\u0027)])"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_908308cc","side":"PARENT","line":533,"updated":"2016-07-25 21:44:55.000000000","message":"Same comment here.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}],"keystone/identity/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":37,"context_line":"    def get_user(self, request, user_id):"},{"line_number":38,"context_line":"        self.assert_admin(request)"},{"line_number":39,"context_line":"        ref \u003d self.identity_api.get_user(user_id)"},{"line_number":40,"context_line":"        return {\u0027user\u0027: self.v3_to_v2_user(ref)}"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @controller.v2_deprecated"},{"line_number":43,"context_line":"    def get_users(self, request):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_30ca1c1b","side":"PARENT","line":40,"updated":"2016-07-25 21:44:55.000000000","message":"I imagine we will use views for these eventually?","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":260,"context_line":"    @controller.protected(callback\u003d_check_user_and_group_protection)"},{"line_number":261,"context_line":"    def add_user_to_group(self, request, user_id, group_id):"},{"line_number":262,"context_line":"        initiator \u003d notifications._get_request_audit_info(request.context_dict)"},{"line_number":263,"context_line":"        self.identity_api.add_user_to_group(user_id, group_id, initiator)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @controller.protected(callback\u003d_check_user_and_group_protection)"},{"line_number":266,"context_line":"    def check_user_in_group(self, request, user_id, group_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_70b93479","side":"PARENT","line":263,"updated":"2016-07-25 21:44:55.000000000","message":"We could use a view here.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":264,"context_line":""},{"line_number":265,"context_line":"    @controller.protected(callback\u003d_check_user_and_group_protection)"},{"line_number":266,"context_line":"    def check_user_in_group(self, request, user_id, group_id):"},{"line_number":267,"context_line":"        return self.identity_api.check_user_in_group(user_id, group_id)"},{"line_number":268,"context_line":""},{"line_number":269,"context_line":"    @controller.protected(callback\u003d_check_user_and_group_protection)"},{"line_number":270,"context_line":"    def remove_user_from_group(self, request, user_id, group_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_30669c29","side":"PARENT","line":267,"updated":"2016-07-25 21:44:55.000000000","message":"Same comment as above.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":269,"context_line":"    @controller.protected(callback\u003d_check_user_and_group_protection)"},{"line_number":270,"context_line":"    def remove_user_from_group(self, request, user_id, group_id):"},{"line_number":271,"context_line":"        initiator \u003d notifications._get_request_audit_info(request.context_dict)"},{"line_number":272,"context_line":"        self.identity_api.remove_user_from_group(user_id, group_id, initiator)"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    @controller.protected()"},{"line_number":275,"context_line":"    def delete_user(self, request, user_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_b0728ce1","side":"PARENT","line":272,"updated":"2016-07-25 21:44:55.000000000","message":"Same comment as above.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":289,"context_line":"                                            attribute\u003d\u0027password\u0027)"},{"line_number":290,"context_line":"        try:"},{"line_number":291,"context_line":"            self.identity_api.change_password("},{"line_number":292,"context_line":"                request.context_dict, user_id, original_password, password)"},{"line_number":293,"context_line":"        except AssertionError:"},{"line_number":294,"context_line":"            raise exception.Unauthorized()"},{"line_number":295,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_d05e2044","side":"PARENT","line":292,"updated":"2016-07-25 21:44:55.000000000","message":"This could use a view as well.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}],"keystone/oauth1/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":107,"context_line":"        path \u003d \u0027/users/%(user_id)s/OS-OAUTH1/access_tokens\u0027 % {"},{"line_number":108,"context_line":"            \u0027user_id\u0027: cls._get_user_id(ref)"},{"line_number":109,"context_line":"        }"},{"line_number":110,"context_line":"        ref[\u0027links\u0027][\u0027self\u0027] \u003d cls.base_url(context, path) + \u0027/\u0027 + ref[\u0027id\u0027]"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    @controller.protected()"},{"line_number":113,"context_line":"    def get_access_token(self, request, user_id, access_token_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_4426f1ba","side":"PARENT","line":110,"updated":"2016-07-25 21:44:55.000000000","message":"This logic could be encapsulated into a view.","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}],"keystone/policy/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":22,"context_line":"@dependency.requires(\u0027policy_api\u0027)"},{"line_number":23,"context_line":"class PolicyV3(controller.V3Controller):"},{"line_number":24,"context_line":"    collection_name \u003d \u0027policies\u0027"},{"line_number":25,"context_line":"    member_name \u003d \u0027policy\u0027"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    @controller.protected()"},{"line_number":28,"context_line":"    @validation.validated(schema.policy_create, \u0027policy\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_046359dd","side":"PARENT","line":25,"updated":"2016-07-25 21:44:55.000000000","message":"Can we pull these things from the view instead?","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}],"keystone/resource/controllers.py":[{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"217f96b20e9e1f7a5ba481fd0bd90ed1ae606e0e","unresolved":false,"context_lines":[{"line_number":273,"context_line":""},{"line_number":274,"context_line":"    def _expand_project_ref(self, view, ref):"},{"line_number":275,"context_line":"        params \u003d view.request.params"},{"line_number":276,"context_line":"        context \u003d view.request.context_dict"},{"line_number":277,"context_line":""},{"line_number":278,"context_line":"        parents_as_list \u003d \u0027parents_as_list\u0027 in params and ("},{"line_number":279,"context_line":"            self.query_filter_is_true(params[\u0027parents_as_list\u0027]))"}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_f8c39c36","line":276,"range":{"start_line":276,"start_character":8,"end_line":276,"end_character":15},"updated":"2016-07-08 14:24:54.000000000","message":"this is not used","commit_id":"a60040d45b45e1cb54314c0ee8dfa6ade2741979"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"217f96b20e9e1f7a5ba481fd0bd90ed1ae606e0e","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                    \u0027params at the same time.\u0027)"},{"line_number":298,"context_line":"            raise exception.ValidationError(msg)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        user_id \u003d request.auth_context.get(\u0027user_id\u0027)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        if parents_as_list:"},{"line_number":303,"context_line":"            parents \u003d self.resource_api.list_project_parents("}],"source_content_type":"text/x-python","patch_set":4,"id":"1aa78d24_38dc0418","line":300,"range":{"start_line":300,"start_character":18,"end_line":300,"end_character":25},"updated":"2016-07-08 14:24:54.000000000","message":"perhaps this should be view.request ?","commit_id":"a60040d45b45e1cb54314c0ee8dfa6ade2741979"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":175,"context_line":""},{"line_number":176,"context_line":"@dependency.requires(\u0027domain_config_api\u0027)"},{"line_number":177,"context_line":"@dependency.requires(\u0027resource_api\u0027)"},{"line_number":178,"context_line":"class DomainConfigV3(controller.V3Controller):"},{"line_number":179,"context_line":"    member_name \u003d \u0027config\u0027"},{"line_number":180,"context_line":""},{"line_number":181,"context_line":"    @controller.protected()"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_443711b0","side":"PARENT","line":178,"updated":"2016-07-25 21:44:55.000000000","message":"I wonder if we should create a view for this?","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}],"keystone/trust/controllers.py":[{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"a9c9c69aaeb23d8d8e56535264810fd8dbeb44e2","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        user_id \u003d self._get_user_id(request.context_dict)"},{"line_number":257,"context_line":"        _trustor_trustee_only(trust, user_id)"},{"line_number":258,"context_line":"        return {\u0027roles\u0027: trust[\u0027roles\u0027],"},{"line_number":259,"context_line":"                \u0027links\u0027: trust[\u0027roles_links\u0027]}"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @controller.protected()"},{"line_number":262,"context_line":"    def get_role_for_trust(self, request, trust_id, role_id):"}],"source_content_type":"text/x-python","patch_set":5,"id":"dada55a8_c472e17b","side":"PARENT","line":259,"updated":"2016-07-25 21:44:55.000000000","message":"Should we use a view here?","commit_id":"bc7822789e04da95c7d3560670ace2b48819f1c6"}]}
