)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"92dfbdd3795a212c86596a4618b918aa5dc04971","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Currently all headers are logged if log_headers are enabled in proxy_logging"},{"line_number":10,"context_line":"middleware. By adding the option log_headers_only it is now possible to limit"},{"line_number":11,"context_line":"the logged headers to the given header values."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I0a1e40567c9eddc9bb00dd00373dc6eeb33d347c"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"AAAAUX%2F%2F2kE%3D","line":12,"updated":"2014-02-10 12:13:11.000000000","message":"You probably need a DocImpact","commit_id":"4d95e3e8a84b8904d3cb41ca0178aab96cf1c465"}],"etc/proxy-server.conf-sample":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"8bfbc297a3cdc764696af378fec06aebb24a7419","unresolved":false,"context_lines":[{"line_number":468,"context_line":"# If access_log_headers is not False and access_log_headers_only is set"},{"line_number":469,"context_line":"# only these headers are logged. For example:"},{"line_number":470,"context_line":"# access_log_headers_only \u003d Host, X-Object-Meta-Mtime"},{"line_number":471,"context_line":"#"},{"line_number":472,"context_line":"# By default, the X-Auth-Token is logged. To obscure the value,"},{"line_number":473,"context_line":"# set reveal_sensitive_prefix to the number of characters to log."},{"line_number":474,"context_line":"# For example, if set to 12, only the first 12 characters of the"}],"source_content_type":"application/octet-stream","patch_set":1,"id":"AAAAT3%2F%2F3Mg%3D","line":471,"updated":"2013-12-29 21:31:10.000000000","message":"The sample configs need to be explicit about the default values. Examples are fine, but the fact that this value defaults to empty needs to be made explicit.","commit_id":"21d63565c15b10ea7c157816767744bc3b7f53b2"},{"author":{"_account_id":1009,"name":"Greg Lange","email":"greglange@gmail.com","username":"greglange"},"change_message_id":"33f8fba5584a8415bc70be9db1030de58fad61bf","unresolved":false,"context_lines":[{"line_number":470,"context_line":"# these headers are logged. Multiple headers can be defined as comma separated"},{"line_number":471,"context_line":"# list like this: access_log_headers_only \u003d Host, X-Object-Meta-Mtime"},{"line_number":472,"context_line":"# access_log_headers_only \u003d"},{"line_number":473,"context_line":"#"},{"line_number":474,"context_line":"# By default, the X-Auth-Token is logged. To obscure the value,"},{"line_number":475,"context_line":"# set reveal_sensitive_prefix to the number of characters to log."},{"line_number":476,"context_line":"# For example, if set to 12, only the first 12 characters of the"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAUX%2F%2F1H8%3D","line":473,"updated":"2014-02-10 15:05:10.000000000","message":"Can \"not False\" be changed to True\"?","commit_id":"47d496ad4cdad543e6ff077a52be25358e73edb3"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"5fb4ca800953b11b603ced033fb2568f00364010","unresolved":false,"context_lines":[{"line_number":470,"context_line":"# these headers are logged. Multiple headers can be defined as comma separated"},{"line_number":471,"context_line":"# list like this: access_log_headers_only \u003d Host, X-Object-Meta-Mtime"},{"line_number":472,"context_line":"# access_log_headers_only \u003d"},{"line_number":473,"context_line":"#"},{"line_number":474,"context_line":"# By default, the X-Auth-Token is logged. To obscure the value,"},{"line_number":475,"context_line":"# set reveal_sensitive_prefix to the number of characters to log."},{"line_number":476,"context_line":"# For example, if set to 12, only the first 12 characters of the"}],"source_content_type":"application/octet-stream","patch_set":5,"id":"AAAAUX%2F%2F0I4%3D","line":473,"in_reply_to":"AAAAUX%2F%2F1H8%3D","updated":"2014-02-10 16:53:23.000000000","message":"Done","commit_id":"47d496ad4cdad543e6ff077a52be25358e73edb3"}],"swift/common/middleware/proxy_logging.py":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"8bfbc297a3cdc764696af378fec06aebb24a7419","unresolved":false,"context_lines":[{"line_number":164,"context_line":"            else:"},{"line_number":165,"context_line":"                logged_headers \u003d \u0027\\n\u0027.join(\u0027%s: %s\u0027 % (k, v)"},{"line_number":166,"context_line":"                                           for k, v in req.headers.items()"},{"line_number":167,"context_line":"                                           if k in self.log_hdrs_only)"},{"line_number":168,"context_line":"        method \u003d self.method_from_req(req)"},{"line_number":169,"context_line":"        end_gmtime_str \u003d time.strftime(\u0027%d/%b/%Y/%H/%M/%S\u0027,"},{"line_number":170,"context_line":"                                       time.gmtime(end_time))"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F3Ms%3D","line":167,"updated":"2013-12-29 21:31:10.000000000","message":"very, _very_ minor nit: can you swap these so the \"positive\" assertion comes first? ie \"if self.log_hdrs_only: ... else:\"","commit_id":"21d63565c15b10ea7c157816767744bc3b7f53b2"},{"author":{"_account_id":1009,"name":"Greg Lange","email":"greglange@gmail.com","username":"greglange"},"change_message_id":"33f8fba5584a8415bc70be9db1030de58fad61bf","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            conf.get(\u0027log_headers\u0027, \u0027no\u0027)))"},{"line_number":96,"context_line":"        log_hdrs_only \u003d list_from_csv(conf.get("},{"line_number":97,"context_line":"            \u0027access_log_headers_only\u0027,"},{"line_number":98,"context_line":"            conf.get(\u0027log_headers_only\u0027, \u0027\u0027)))"},{"line_number":99,"context_line":"        self.log_hdrs_only \u003d [x.title() for x in log_hdrs_only]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # The leading access_* check is in case someone assumes that"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2F1Eo%3D","line":98,"updated":"2014-02-10 15:05:10.000000000","message":"The \"log_headers_only\" config value isn\u0027t mentioned in the sample config.  It should be added if it\u0027s used.\n\nWhy are there two config keys to set \"log_hdrs_only\", \"access_log_headers_only\" and \"log_headers_only\"?  Maybe there is a good reason that I\u0027m just missing.  Thanks.","commit_id":"47d496ad4cdad543e6ff077a52be25358e73edb3"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@nvidia.com","username":"cschwede"},"change_message_id":"5fb4ca800953b11b603ced033fb2568f00364010","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            conf.get(\u0027log_headers\u0027, \u0027no\u0027)))"},{"line_number":96,"context_line":"        log_hdrs_only \u003d list_from_csv(conf.get("},{"line_number":97,"context_line":"            \u0027access_log_headers_only\u0027,"},{"line_number":98,"context_line":"            conf.get(\u0027log_headers_only\u0027, \u0027\u0027)))"},{"line_number":99,"context_line":"        self.log_hdrs_only \u003d [x.title() for x in log_hdrs_only]"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # The leading access_* check is in case someone assumes that"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAUX%2F%2F0IE%3D","line":98,"in_reply_to":"AAAAUX%2F%2F1Eo%3D","updated":"2014-02-10 16:53:23.000000000","message":"Thanks, entries without the \"account_\" prefix are used globally in the config thus log_hdrs_only doesn\u0027t make sense here. Removed.","commit_id":"47d496ad4cdad543e6ff077a52be25358e73edb3"}],"test/unit/common/middleware/test_proxy_logging.py":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"8bfbc297a3cdc764696af378fec06aebb24a7419","unresolved":false,"context_lines":[{"line_number":357,"context_line":"            log_parts \u003d self._log_parts(app)"},{"line_number":358,"context_line":"            headers \u003d unquote(log_parts[14]).split(\u0027\\n\u0027)"},{"line_number":359,"context_line":"            self.assert_(\u0027Other: test\u0027 in headers)"},{"line_number":360,"context_line":"            self.assertEqual(False, \u0027Host: localhost:80\u0027 in headers)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def test_upload_size(self):"},{"line_number":363,"context_line":"        app \u003d proxy_logging.ProxyLoggingMiddleware(FakeApp(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAT3%2F%2F3M0%3D","line":360,"updated":"2013-12-29 21:31:10.000000000","message":"self.assert_(\u0027Host: localhost:80\u0027 not in headers)","commit_id":"21d63565c15b10ea7c157816767744bc3b7f53b2"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"92dfbdd3795a212c86596a4618b918aa5dc04971","unresolved":false,"context_lines":[{"line_number":355,"context_line":"                                         \u0027Third\u0027: \u00273\u0027})"},{"line_number":356,"context_line":"            resp \u003d app(req.environ, start_response)"},{"line_number":357,"context_line":"            # exhaust generator"},{"line_number":358,"context_line":"            [x for x in resp]"},{"line_number":359,"context_line":"            log_parts \u003d self._log_parts(app)"},{"line_number":360,"context_line":"            headers \u003d unquote(log_parts[14]).split(\u0027\\n\u0027)"},{"line_number":361,"context_line":"            self.assert_(\u0027First: 1\u0027 in headers)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAUX%2F%2F2kg%3D","line":358,"updated":"2014-02-10 12:13:11.000000000","message":"resp.read() instead maybe?","commit_id":"4d95e3e8a84b8904d3cb41ca0178aab96cf1c465"}]}
