)]}'
{"swift/common/middleware/profiler.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"86712d5a29873277cff28193a56170ef3a323c76","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            return False"},{"line_number":64,"context_line":"        return True"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @swob.wsgify"},{"line_number":67,"context_line":"    def __call__(self, request):"},{"line_number":68,"context_line":"        if self.enabled:"},{"line_number":69,"context_line":"            trace_info \u003d osprofiler_utils.signed_unpack("}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_a575ccce","line":66,"updated":"2017-05-26 15:36:53.000000000","message":"I ran into similar trouble with the WWW-Authenticate header in https://review.openstack.org/#/c/449394/ -- it came down to swob.Response only keeping the last value when a header is repeated.\n\nFWIW, I worked around it by dropping @swob.wsgify, making the Request object myself, then getting a (status, headers, resp_iter) tuple from req.call_application(self.app). I think that probably isn\u0027t even necessary here, though having a Request object might still be handy. I think this would work pretty well as\n\n def __call__(env, start_response):\n     request \u003d swob.Request(env)\n     \u003ceverything else, replacing\n         return request.get_response(self.application)\n      with\n         return self.application(env, start_response)\n     \u003e","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"80296c13a6fa2c2eec0ed57827b9b17a4a8b4716","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            return False"},{"line_number":64,"context_line":"        return True"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    @swob.wsgify"},{"line_number":67,"context_line":"    def __call__(self, request):"},{"line_number":68,"context_line":"        if self.enabled:"},{"line_number":69,"context_line":"            trace_info \u003d osprofiler_utils.signed_unpack("}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_d6e2d52f","line":66,"in_reply_to":"ff0f0b1f_a575ccce","updated":"2017-05-29 02:01:24.000000000","message":"Thanks for this. Will make it happen!","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"86712d5a29873277cff28193a56170ef3a323c76","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                    \"path\": request.path,"},{"line_number":81,"context_line":"                    \"query\": request.query_string,"},{"line_number":82,"context_line":"                    \"method\": request.method,"},{"line_number":83,"context_line":"                    \"scheme\": request.host_url.replace(\u0027://\u0027 + request.host,"},{"line_number":84,"context_line":"                                                       \u0027\u0027)"},{"line_number":85,"context_line":"                }"},{"line_number":86,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_70765441","line":83,"updated":"2017-05-26 15:36:53.000000000","message":"FWIW, this boils down to\n\n request.environ.get(\u0027wsgi.url_scheme\u0027, \u0027http\u0027)","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"80296c13a6fa2c2eec0ed57827b9b17a4a8b4716","unresolved":false,"context_lines":[{"line_number":80,"context_line":"                    \"path\": request.path,"},{"line_number":81,"context_line":"                    \"query\": request.query_string,"},{"line_number":82,"context_line":"                    \"method\": request.method,"},{"line_number":83,"context_line":"                    \"scheme\": request.host_url.replace(\u0027://\u0027 + request.host,"},{"line_number":84,"context_line":"                                                       \u0027\u0027)"},{"line_number":85,"context_line":"                }"},{"line_number":86,"context_line":"            }"}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_76a42909","line":83,"in_reply_to":"ff0f0b1f_70765441","updated":"2017-05-29 02:01:24.000000000","message":"+1 for a good catch! :D","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"86712d5a29873277cff28193a56170ef3a323c76","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                with osprofiler_profiler.Trace(self.name, info\u003dinfo):"},{"line_number":89,"context_line":"                    return request.get_response(self.application)"},{"line_number":90,"context_line":"            finally:"},{"line_number":91,"context_line":"                osprofiler_profiler._clean()"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            return request.get_response(self.application)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_50ec70f2","line":91,"updated":"2017-05-26 15:36:53.000000000","message":"We don\u0027t get this for free out of the context manager?","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"80296c13a6fa2c2eec0ed57827b9b17a4a8b4716","unresolved":false,"context_lines":[{"line_number":88,"context_line":"                with osprofiler_profiler.Trace(self.name, info\u003dinfo):"},{"line_number":89,"context_line":"                    return request.get_response(self.application)"},{"line_number":90,"context_line":"            finally:"},{"line_number":91,"context_line":"                osprofiler_profiler._clean()"},{"line_number":92,"context_line":"        else:"},{"line_number":93,"context_line":"            return request.get_response(self.application)"},{"line_number":94,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_d6b41538","line":91,"in_reply_to":"ff0f0b1f_50ec70f2","updated":"2017-05-29 02:01:24.000000000","message":"we can get rid of context manager","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"86712d5a29873277cff28193a56170ef3a323c76","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            \u0027binary\u0027: binary,"},{"line_number":126,"context_line":"            \u0027host\u0027: host,"},{"line_number":127,"context_line":"            \u0027profiler\u0027: {"},{"line_number":128,"context_line":"                \u0027connection_string\u0027: config.get(section, \u0027connection_string\u0027),"},{"line_number":129,"context_line":"                \u0027enabled\u0027: config.getboolean(section, \u0027enabled\u0027),"},{"line_number":130,"context_line":"                \u0027hmac_keys\u0027: config.get(section, \u0027hmac_keys\u0027),"},{"line_number":131,"context_line":"                \u0027trace_sqlite\u0027: config.getboolean(section, \u0027trace_sqlite\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"ff0f0b1f_f07ca473","line":128,"updated":"2017-05-26 15:36:53.000000000","message":"It seems strange to me that these would come out of a [profiler] section instead of the [filter:profiler] Paste section -- is this just to be more consistent with oslo.config placement?","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"},{"author":{"_account_id":23630,"name":"Tovin Seven","email":"tovin07@gmail.com","username":"tovin07"},"change_message_id":"80296c13a6fa2c2eec0ed57827b9b17a4a8b4716","unresolved":false,"context_lines":[{"line_number":125,"context_line":"            \u0027binary\u0027: binary,"},{"line_number":126,"context_line":"            \u0027host\u0027: host,"},{"line_number":127,"context_line":"            \u0027profiler\u0027: {"},{"line_number":128,"context_line":"                \u0027connection_string\u0027: config.get(section, \u0027connection_string\u0027),"},{"line_number":129,"context_line":"                \u0027enabled\u0027: config.getboolean(section, \u0027enabled\u0027),"},{"line_number":130,"context_line":"                \u0027hmac_keys\u0027: config.get(section, \u0027hmac_keys\u0027),"},{"line_number":131,"context_line":"                \u0027trace_sqlite\u0027: config.getboolean(section, \u0027trace_sqlite\u0027)"}],"source_content_type":"text/x-python","patch_set":5,"id":"df140735_76f2e908","line":128,"in_reply_to":"ff0f0b1f_f07ca473","updated":"2017-05-29 02:01:24.000000000","message":"Yes, I make it consistent with oslo.config in the first place.\nAnd yes, It\u0027s easy to move it to [filter:osprofiler] section.\nHowever, i think that [filter:osprofiler] section should be used for paste only. Other configs in [profiler] does not relate to paste middleware at all.","commit_id":"f6503e4b0317f1a175ec14d2519caf9e80efcef7"}]}
