)]}'
{"ceilometer/objectstore/swift_middleware.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"7c2881ca764ef4dc7e59eb59638fba5b07a69de0","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Some optional configuration"},{"line_number":34,"context_line":"# this allow to publish additionnal metadata"},{"line_number":35,"context_line":"headers_to_publish \u003d X-TEST"},{"line_number":36,"context_line":"\"\"\""},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"from __future__ import absolute_import"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOH%2F%2F9hs%3D","line":35,"updated":"2013-03-19 10:24:52.000000000","message":"I think a name like \"metadata_headers\" would be more tighten to what it does.","commit_id":"fe827dbf7bf2af1478b675e3e181b8612a6298d3"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6d4ba76776b169ea7d4156bb6f7a31b5f6eb7aae","unresolved":false,"context_lines":[{"line_number":28,"context_line":"before \"proxy-server\" and add the following filter in the file:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"[filter:ceilometer]"},{"line_number":31,"context_line":"paste.filter_factory \u003d ceilometer.objectstore.swift_middleware:filter_factory"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Some optional configuration"},{"line_number":34,"context_line":"# this allow to publish additionnal metadata"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F7Ao%3D","line":31,"updated":"2013-03-20 22:05:52.000000000","message":"this is different from what the manual.rst doc\n\n[filter:ceilometer]\nuse \u003d egg:ceilometer#swift\n\nthis appears to do the same but i could be wrong","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d5a9d72f871695f6bdcaf9131766c0d9d318e0ca","unresolved":false,"context_lines":[{"line_number":28,"context_line":"before \"proxy-server\" and add the following filter in the file:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"[filter:ceilometer]"},{"line_number":31,"context_line":"paste.filter_factory \u003d ceilometer.objectstore.swift_middleware:filter_factory"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Some optional configuration"},{"line_number":34,"context_line":"# this allow to publish additionnal metadata"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6WM%3D","line":31,"in_reply_to":"AAAAOH%2F%2F66c%3D","updated":"2013-03-21 07:46:14.000000000","message":"Done","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"a3939b1957a4a628ca71141d779ae57e6eab9f2b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"before \"proxy-server\" and add the following filter in the file:"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"[filter:ceilometer]"},{"line_number":31,"context_line":"paste.filter_factory \u003d ceilometer.objectstore.swift_middleware:filter_factory"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Some optional configuration"},{"line_number":34,"context_line":"# this allow to publish additionnal metadata"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F66c%3D","line":31,"in_reply_to":"AAAAOH%2F%2F7Ao%3D","updated":"2013-03-20 22:29:11.000000000","message":"it does the same indeed, most swift dev use the egg syntax tho.","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"6d4ba76776b169ea7d4156bb6f7a31b5f6eb7aae","unresolved":false,"context_lines":[{"line_number":31,"context_line":"paste.filter_factory \u003d ceilometer.objectstore.swift_middleware:filter_factory"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Some optional configuration"},{"line_number":34,"context_line":"# this allow to publish additionnal metadata"},{"line_number":35,"context_line":"metadata_headers \u003d X-TEST"},{"line_number":36,"context_line":"\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F7Bo%3D","line":34,"updated":"2013-03-20 22:05:52.000000000","message":"(nit) additional","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d5a9d72f871695f6bdcaf9131766c0d9d318e0ca","unresolved":false,"context_lines":[{"line_number":31,"context_line":"paste.filter_factory \u003d ceilometer.objectstore.swift_middleware:filter_factory"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"# Some optional configuration"},{"line_number":34,"context_line":"# this allow to publish additionnal metadata"},{"line_number":35,"context_line":"metadata_headers \u003d X-TEST"},{"line_number":36,"context_line":"\"\"\""},{"line_number":37,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6WY%3D","line":34,"in_reply_to":"AAAAOH%2F%2F7Bo%3D","updated":"2013-03-21 07:46:14.000000000","message":"Done","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"82244692a67084aea04b3a07bd10a5adde9e9943","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def __init__(self, app, conf):"},{"line_number":73,"context_line":"        self.app \u003d app"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        self.metadata_headers \u003d [h.strip().replace(\u0027-\u0027, \u0027_\u0027).lower()"},{"line_number":76,"context_line":"                                 for h in conf.get("},{"line_number":77,"context_line":"                                     \"metadata_headers\","},{"line_number":78,"context_line":"                                     \"\").split(\",\") if h.strip()]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F690%3D","line":75,"updated":"2013-03-20 21:52:40.000000000","message":"since you are already swift.common.utils you probably can use that as well https://github.com/openstack/swift/blob/master/swift/common/utils.py#L1584","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d5a9d72f871695f6bdcaf9131766c0d9d318e0ca","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    def __init__(self, app, conf):"},{"line_number":73,"context_line":"        self.app \u003d app"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        self.metadata_headers \u003d [h.strip().replace(\u0027-\u0027, \u0027_\u0027).lower()"},{"line_number":76,"context_line":"                                 for h in conf.get("},{"line_number":77,"context_line":"                                     \"metadata_headers\","},{"line_number":78,"context_line":"                                     \"\").split(\",\") if h.strip()]"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6Wc%3D","line":75,"in_reply_to":"AAAAOH%2F%2F690%3D","updated":"2013-03-21 07:46:14.000000000","message":"It doesn\u0027t do exactly the same thing, I convert - to _ and I lower the case too","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":866,"name":"Chmouel Boudjnah","email":"chmouel@chmouel.com","username":"chmouel"},"change_message_id":"82244692a67084aea04b3a07bd10a5adde9e9943","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        }"},{"line_number":130,"context_line":"        for header in self.metadata_headers:"},{"line_number":131,"context_line":"            resource_metadata[\u0027http_header_%s\u0027 % header] \u003d env.get("},{"line_number":132,"context_line":"                \u0027HTTP_%s\u0027 % header.upper())"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        with pipeline.PublishContext("},{"line_number":135,"context_line":"                context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F69o%3D","line":132,"updated":"2013-03-20 21:52:40.000000000","message":"what about if \u0027header\u0027 is not there?","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"d5a9d72f871695f6bdcaf9131766c0d9d318e0ca","unresolved":false,"context_lines":[{"line_number":129,"context_line":"        }"},{"line_number":130,"context_line":"        for header in self.metadata_headers:"},{"line_number":131,"context_line":"            resource_metadata[\u0027http_header_%s\u0027 % header] \u003d env.get("},{"line_number":132,"context_line":"                \u0027HTTP_%s\u0027 % header.upper())"},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"        with pipeline.PublishContext("},{"line_number":135,"context_line":"                context.get_admin_context(),"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F6Wo%3D","line":132,"in_reply_to":"AAAAOH%2F%2F69o%3D","updated":"2013-03-21 07:46:14.000000000","message":"It set the \u0027http_header_XXXXX\u0027 to None that I am expecting.","commit_id":"75070a9419ec8632f775357ddc51f5045a704f0a"}],"tests/objectstore/test_swift_middleware.py":[{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"2322dc5805c165ac7392803dd23bd0465a4b8c1c","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        app \u003d swift_middleware.CeilometerMiddleware(FakeApp(), {"},{"line_number":154,"context_line":"            \u0027metadata_headers\u0027: \u0027X_VAR1, x_var2\u0027"},{"line_number":155,"context_line":"        })"},{"line_number":156,"context_line":"        req \u003d Request.blank(\u0027/1.0/account/container\u0027,"},{"line_number":157,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027,"},{"line_number":158,"context_line":"                                     \u0027HTTP_X_VAR1\u0027: \u0027value1\u0027,"},{"line_number":159,"context_line":"                                     \u0027HTTP_X_VAR2\u0027: \u0027value2\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F7ck%3D","line":156,"updated":"2013-03-20 16:16:09.000000000","message":"I think I\u0027d prefer to use headers\u003d{} in blank() if that\u0027s possible (but maybe it\u0027s not?)\n\nAlso,  adding something like X_var3 *only* in config and not int request might be useful to prove that doesn\u0027t crash the thing if the header isn\u0027t in the request.","commit_id":"02d505d8eef04dc19ea46235a6fd8e1d202a6a20"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c99a76ab283082ef3899def11f9c741d0c86e530","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        app \u003d swift_middleware.CeilometerMiddleware(FakeApp(), {"},{"line_number":154,"context_line":"            \u0027metadata_headers\u0027: \u0027X_VAR1, x_var2\u0027"},{"line_number":155,"context_line":"        })"},{"line_number":156,"context_line":"        req \u003d Request.blank(\u0027/1.0/account/container\u0027,"},{"line_number":157,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027,"},{"line_number":158,"context_line":"                                     \u0027HTTP_X_VAR1\u0027: \u0027value1\u0027,"},{"line_number":159,"context_line":"                                     \u0027HTTP_X_VAR2\u0027: \u0027value2\u0027"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAOH%2F%2F7Z8%3D","line":156,"in_reply_to":"AAAAOH%2F%2F7ck%3D","updated":"2013-03-20 16:57:16.000000000","message":"Done","commit_id":"02d505d8eef04dc19ea46235a6fd8e1d202a6a20"}]}
