)]}'
{"keystone/middleware/auth.py":[{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c5e472607855d2410f473578795c7c44e93247d2","unresolved":false,"context_lines":[{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def fetch_token(self, token):"},{"line_number":48,"context_line":"        if CONF.admin_token and token \u003d\u003d CONF.admin_token:"},{"line_number":49,"context_line":"            return {}"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"        try:"},{"line_number":52,"context_line":"            return self.token_provider_api.validate_token(token)"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_9d3ddcbd","line":49,"updated":"2016-07-20 00:46:30.000000000","message":"this is where the empty dict is returned and then is unable to be converted into an AccessInfo. It means we\u0027d probably never hit this scenario now.","commit_id":"3ea3a1a3f3f00e5c03fdcc5e8c8542b4f94ce22a"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"9ca01d364c754f60ffb195dbb5e6e9bb5bd39c66","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @wsgi.middleware_exceptions"},{"line_number":140,"context_line":"    def process_request(self, request):"},{"line_number":141,"context_line":"        if not request.environ.get(core.CONTEXT_ENV, {}).get(\u0027is_admin\u0027, False):"},{"line_number":142,"context_line":"            resp \u003d super(AuthContextMiddleware, self).process_request(request)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            if resp:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_c7030341","line":141,"range":{"start_line":141,"start_character":8,"end_line":141,"end_character":80},"updated":"2016-07-19 23:41:08.000000000","message":"can we not check:\n\n  if not request_context.is_admin\n\nor is it not built at that point yet?","commit_id":"3ea3a1a3f3f00e5c03fdcc5e8c8542b4f94ce22a"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c5e472607855d2410f473578795c7c44e93247d2","unresolved":false,"context_lines":[{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    @wsgi.middleware_exceptions"},{"line_number":140,"context_line":"    def process_request(self, request):"},{"line_number":141,"context_line":"        if not request.environ.get(core.CONTEXT_ENV, {}).get(\u0027is_admin\u0027, False):"},{"line_number":142,"context_line":"            resp \u003d super(AuthContextMiddleware, self).process_request(request)"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"            if resp:"}],"source_content_type":"text/x-python","patch_set":1,"id":"dada55a8_fd1e9861","line":141,"range":{"start_line":141,"start_character":8,"end_line":141,"end_character":80},"in_reply_to":"dada55a8_c7030341","updated":"2016-07-20 00:46:30.000000000","message":"no, because the request object is different between auth_token and keystone itself. At this point though it might be worth adding it to the middleware request object as well.\n\nI need to have a look at the middleware setting  core.CONTEXT_ENV is coming from and whether we need to handle the: \n\nCONF.admin_token and request.user_token \u003d\u003d CONF.admin_token:\n\ncase as well.","commit_id":"3ea3a1a3f3f00e5c03fdcc5e8c8542b4f94ce22a"},{"author":{"_account_id":8978,"name":"Marek Denis","email":"marek.denis+openstack@gmail.com","username":"marek-denis"},"change_message_id":"d483228ef748fb6df3fde58ec243b17e0f4bf487","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    @wsgi.middleware_exceptions"},{"line_number":137,"context_line":"    def process_request(self, request):"},{"line_number":138,"context_line":"        context_env \u003d request.environ.get(core.CONTEXT_ENV, {})"},{"line_number":139,"context_line":"        if not context_env.get(\u0027is_admin\u0027, False):"},{"line_number":140,"context_line":"            resp \u003d super(AuthContextMiddleware, self).process_request(request)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            if resp:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_e44e53c0","line":139,"updated":"2016-07-28 08:44:46.000000000","message":"How about: \nif context_env.get(\u0027is_admin\u0027, False) is False:\n    [...]\n\notherwise you end up with double not\u0027ing.","commit_id":"3a023c877f7ef9b16441f6bc0ab05750e8500bef"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"b6e443045a67c7c87c3bdeb97f03470300020dd3","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    @wsgi.middleware_exceptions"},{"line_number":137,"context_line":"    def process_request(self, request):"},{"line_number":138,"context_line":"        context_env \u003d request.environ.get(core.CONTEXT_ENV, {})"},{"line_number":139,"context_line":"        if not context_env.get(\u0027is_admin\u0027, False):"},{"line_number":140,"context_line":"            resp \u003d super(AuthContextMiddleware, self).process_request(request)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            if resp:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_f6800c8d","line":139,"in_reply_to":"bacf61ea_e44e53c0","updated":"2016-08-02 00:16:19.000000000","message":"Doing it that way causes it to fail some tests, it seems sometimes is_admin is set to None","commit_id":"3a023c877f7ef9b16441f6bc0ab05750e8500bef"},{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"830bfb1cd15fbe7c961354a3d4acb9c42ee4eb1c","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    @wsgi.middleware_exceptions"},{"line_number":137,"context_line":"    def process_request(self, request):"},{"line_number":138,"context_line":"        context_env \u003d request.environ.get(core.CONTEXT_ENV, {})"},{"line_number":139,"context_line":"        if not context_env.get(\u0027is_admin\u0027, False):"},{"line_number":140,"context_line":"            resp \u003d super(AuthContextMiddleware, self).process_request(request)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            if resp:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_394ed796","line":139,"in_reply_to":"bacf61ea_f43e1dd9","updated":"2016-08-03 02:45:04.000000000","message":"I don\u0027t think it\u0027s a bug. It\u0027s happening because this method[1] sets the value to None and None \u003d\u003d None which evaluates to None, not False. I think this conditional should be able to handle any falsey value.\n\n[1] http://git.openstack.org/cgit/openstack/keystone/tree/keystone/middleware/core.py#n72","commit_id":"3a023c877f7ef9b16441f6bc0ab05750e8500bef"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"ce853747c4bf2593128dd22105939343bf005a34","unresolved":false,"context_lines":[{"line_number":136,"context_line":"    @wsgi.middleware_exceptions"},{"line_number":137,"context_line":"    def process_request(self, request):"},{"line_number":138,"context_line":"        context_env \u003d request.environ.get(core.CONTEXT_ENV, {})"},{"line_number":139,"context_line":"        if not context_env.get(\u0027is_admin\u0027, False):"},{"line_number":140,"context_line":"            resp \u003d super(AuthContextMiddleware, self).process_request(request)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"            if resp:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bacf61ea_f43e1dd9","line":139,"in_reply_to":"bacf61ea_f6800c8d","updated":"2016-08-02 15:41:46.000000000","message":"Could you please identify these cases and report a bug?","commit_id":"3a023c877f7ef9b16441f6bc0ab05750e8500bef"}],"keystone/tests/unit/test_middleware.py":[{"author":{"_account_id":8482,"name":"Colleen Murphy","email":"colleen@gazlene.net","username":"krinkle"},"change_message_id":"f0a940a1b3ca422cabe7ed5db57cc68e378f23be","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def _generate_app_response(self, app, headers\u003dNone, method\u003d\u0027get\u0027,"},{"line_number":53,"context_line":"                               path\u003d\u0027/\u0027, **kwargs):"},{"line_number":54,"context_line":"        \"\"\"Given a wsgi application wrap it in webtest and call it.\"\"\""},{"line_number":55,"context_line":"        return getattr(webtest.TestApp(app), method)(path,"},{"line_number":56,"context_line":"                                                     headers\u003dheaders or {},"},{"line_number":57,"context_line":"                                                     **kwargs)"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"bacf61ea_c2a70aa5","line":55,"updated":"2016-08-01 22:00:50.000000000","message":"This almost works but webob is changing the environment headers in the tests (https://github.com/Pylons/webob/blob/master/webob/headers.py#L141-L142) and not in the actual app so the test currently fails","commit_id":"d9148b33579272913e0e77767fb99abb5d7b13aa"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"fccbd30d9f0104f7fd42d85631a7806a12bde8b3","unresolved":false,"context_lines":[{"line_number":770,"context_line":"        headers \u003d {middleware.AUTH_TOKEN_HEADER: \u0027ADMIN\u0027}"},{"line_number":771,"context_line":"        environ \u003d {middleware.core.CONTEXT_ENV: {\u0027is_admin\u0027: True}}"},{"line_number":772,"context_line":"        self._do_middleware_request(headers\u003dheaders, extra_environ\u003denviron)"},{"line_number":773,"context_line":"        assert \u0027Invalid user token\u0027 not in log_fix.output"}],"source_content_type":"text/x-python","patch_set":4,"id":"bacf61ea_1d13150f","line":773,"range":{"start_line":773,"start_character":8,"end_line":773,"end_character":57},"updated":"2016-08-02 15:59:37.000000000","message":"please use self.assertNotIn, example can be found in keystone/tests/unit/test_wsgi.py","commit_id":"599dde482b5774bc5896e87dadafb0a5e1520aca"}]}
