)]}'
{"glance/api/middleware/context.py":[{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"dd554064f364eb786746924e4907e9fc81c9ee52","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            \u0027request_id\u0027: request_id,"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        ctxt \u003d glance.context.RequestContext.from_environ(req.environ,"},{"line_number":129,"context_line":"                                                          **kwargs)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if CONF.admin_role.strip().lower() in ctxt.roles:"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_59e8b710","line":128,"updated":"2016-05-13 19:33:32.000000000","message":"currently master oslo.context uses X_PROJECT_ID not X_TENANT_ID, and X_AUTH_TOKEN instead of falling back to X_STORAGE_TOKEN if needed, so subclassed work is needed temporarily.","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"17355b6f44495274a1330ddc7a9c070922cc2f03","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            \u0027request_id\u0027: request_id,"},{"line_number":126,"context_line":"        }"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"        ctxt \u003d glance.context.RequestContext.from_environ(req.environ,"},{"line_number":129,"context_line":"                                                          **kwargs)"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        if CONF.admin_role.strip().lower() in ctxt.roles:"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_52829853","line":128,"in_reply_to":"dab17558_59e8b710","updated":"2016-06-06 07:47:21.000000000","message":"yep, handled in our from_environ subclass rather than here.","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"},{"author":{"_account_id":11391,"name":"Mikhail Fedosin","email":"mfedosin@redhat.com","username":"fedosinme"},"change_message_id":"48d77cc512444c390c6ed7b7f1db4e9250ebc9ae","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        # NOTE(bcwaldon): X-Roles is a csv string, but we need to parse"},{"line_number":106,"context_line":"        # it into a list to be useful"},{"line_number":107,"context_line":"        roles_header \u003d req.headers.get(\u0027X-Roles\u0027, \u0027\u0027)"},{"line_number":108,"context_line":"        roles \u003d [r.strip().lower() for r in roles_header.split(\u0027,\u0027)]"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        # NOTE(bcwaldon): This header is deprecated in favor of X-Auth-Token"},{"line_number":111,"context_line":"        deprecated_token \u003d req.headers.get(\u0027X-Storage-Token\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_637d2a1c","side":"PARENT","line":108,"updated":"2016-07-04 18:05:49.000000000","message":"This thing worries me here. Before this patch glance didn\u0027t differentiate roles in upper and lower cases, i.e. roles \u0027Admin\u0027 and \u0027admin\u0027 are the same. In oslo.context these roles are different: https://github.com/openstack/oslo.context/blob/master/oslo_context/context.py#L176\n\nI don\u0027t think it\u0027s a big issue, but we must be sure that it won\u0027t break anything.","commit_id":"5f48788b001431c3961dd3e1ebf3a1fb2e7ec32b"},{"author":{"_account_id":14676,"name":"Kairat Kushaev","email":"kkushaev@mirantis.com","username":"kairat_kushaev"},"change_message_id":"c5d31f1844951a23e12ca48b22365e159c6e0de3","unresolved":false,"context_lines":[{"line_number":105,"context_line":"        # NOTE(bcwaldon): X-Roles is a csv string, but we need to parse"},{"line_number":106,"context_line":"        # it into a list to be useful"},{"line_number":107,"context_line":"        roles_header \u003d req.headers.get(\u0027X-Roles\u0027, \u0027\u0027)"},{"line_number":108,"context_line":"        roles \u003d [r.strip().lower() for r in roles_header.split(\u0027,\u0027)]"},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"        # NOTE(bcwaldon): This header is deprecated in favor of X-Auth-Token"},{"line_number":111,"context_line":"        deprecated_token \u003d req.headers.get(\u0027X-Storage-Token\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1aa78d24_0e285085","side":"PARENT","line":108,"in_reply_to":"1aa78d24_637d2a1c","updated":"2016-07-06 20:22:51.000000000","message":"Yep, this was based on Keystone and Nova case insentivity, so we need to be aware: \nhttps://bugs.launchpad.net/glance/+bug/1010519","commit_id":"5f48788b001431c3961dd3e1ebf3a1fb2e7ec32b"}],"glance/context.py":[{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"dd554064f364eb786746924e4907e9fc81c9ee52","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.owner_is_tenant \u003d owner_is_tenant"},{"line_number":33,"context_line":"        self.service_catalog \u003d service_catalog"},{"line_number":34,"context_line":"        self.policy_enforcer \u003d policy_enforcer or policy.Enforcer()"},{"line_number":35,"context_line":"        self.roles \u003d [r.strip() for r in self.roles]"},{"line_number":36,"context_line":"        if not self.is_admin:"},{"line_number":37,"context_line":"            self.is_admin \u003d self.policy_enforcer.check_is_admin(self)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_b99c435e","line":35,"updated":"2016-05-13 19:33:32.000000000","message":"What was the use case for adding this? \nSeems we may want to add this also to context base class (in addition to your patch for from_environ https://review.openstack.org/#/c/312389) if we cannot assume this.","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"17355b6f44495274a1330ddc7a9c070922cc2f03","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.owner_is_tenant \u003d owner_is_tenant"},{"line_number":33,"context_line":"        self.service_catalog \u003d service_catalog"},{"line_number":34,"context_line":"        self.policy_enforcer \u003d policy_enforcer or policy.Enforcer()"},{"line_number":35,"context_line":"        self.roles \u003d [r.strip() for r in self.roles]"},{"line_number":36,"context_line":"        if not self.is_admin:"},{"line_number":37,"context_line":"            self.is_admin \u003d self.policy_enforcer.check_is_admin(self)"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_927c0074","line":35,"in_reply_to":"dab17558_b99c435e","updated":"2016-06-06 07:47:21.000000000","message":"No idea, this was part of the original context creator function, i just moved it here because the self.roles is not available until after super.__init__ is run.","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"dd554064f364eb786746924e4907e9fc81c9ee52","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        return pdict"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @classmethod"},{"line_number":54,"context_line":"    def from_environ(cls, environ, **kwargs):"},{"line_number":55,"context_line":"        ctxt \u003d super(RequestContext, cls).from_environ(environ, **kwargs)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # this should be in oslo.context, it is deprecated but used in tests"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab17558_f9f40bd0","line":54,"updated":"2016-05-13 19:33:32.000000000","message":"This classmethod can be removed when https://review.openstack.org/#/c/312388 is released doing the deprecated mappings.","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"},{"author":{"_account_id":16051,"name":"Ronald Bradford","email":"ronald.bradford@gmail.com","username":"ronaldbradford"},"change_message_id":"89db6e6a63ca7c00b3827bac2f476ad2e4426e42","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        return pdict"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @classmethod"},{"line_number":54,"context_line":"    def from_environ(cls, environ, **kwargs):"},{"line_number":55,"context_line":"        ctxt \u003d super(RequestContext, cls).from_environ(environ, **kwargs)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # this should be in oslo.context, it is deprecated but used in tests"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_3e08c3d9","line":54,"in_reply_to":"7aa08908_908bbfc2","updated":"2016-06-08 16:05:53.000000000","message":"Requires oslo.context 2.4.0.  Request for update to requirements.txt in https://review.openstack.org/#/c/327202/","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"},{"author":{"_account_id":5202,"name":"Erno Kuvaja","email":"jokke@usr.fi","username":"jokke"},"change_message_id":"ffbfe3dbf75fa9f978b316d2b1de4ea92f9f670e","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        return pdict"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    @classmethod"},{"line_number":54,"context_line":"    def from_environ(cls, environ, **kwargs):"},{"line_number":55,"context_line":"        ctxt \u003d super(RequestContext, cls).from_environ(environ, **kwargs)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"        # this should be in oslo.context, it is deprecated but used in tests"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa08908_908bbfc2","line":54,"in_reply_to":"dab17558_f9f40bd0","updated":"2016-06-08 10:33:42.000000000","message":"It got merged 4 weeks ago, has it been release yet?","commit_id":"ab21007f7ca622f54a11026af68b4e22615bb860"}]}
