)]}'
{"ceilometer/objectstore/swift_middleware.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d5979f9425f3d5f69575e05d74776e0ba4a1fbaa","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            req_method \u003d req.method.lower()"},{"line_number":172,"context_line":"            if req_method not in STANDARD_REQUEST_METHODS:"},{"line_number":173,"context_line":"                req_method \u003d \u0027other\u0027"},{"line_number":174,"context_line":"            publisher([counter.Counter("},{"line_number":175,"context_line":"                name\u003d\u0027storage.request.%s\u0027 % req_method,"},{"line_number":176,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":177,"context_line":"                unit\u003d\u0027request\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8xM%3D","line":174,"updated":"2013-04-10 15:26:42.000000000","message":"The new meter needs to be documented. See docs/source/measurements.rst.","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"faebd04d9511fb931e19c9c5d8a613882a24cac6","unresolved":false,"context_lines":[{"line_number":171,"context_line":"            req_method \u003d req.method.lower()"},{"line_number":172,"context_line":"            if req_method not in STANDARD_REQUEST_METHODS:"},{"line_number":173,"context_line":"                req_method \u003d \u0027other\u0027"},{"line_number":174,"context_line":"            publisher([counter.Counter("},{"line_number":175,"context_line":"                name\u003d\u0027storage.request.%s\u0027 % req_method,"},{"line_number":176,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":177,"context_line":"                unit\u003d\u0027request\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8wc%3D","line":174,"in_reply_to":"AAAAOn%2F%2F8xM%3D","updated":"2013-04-10 16:21:29.000000000","message":"will add. thanks.","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"d5979f9425f3d5f69575e05d74776e0ba4a1fbaa","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            if req_method not in STANDARD_REQUEST_METHODS:"},{"line_number":173,"context_line":"                req_method \u003d \u0027other\u0027"},{"line_number":174,"context_line":"            publisher([counter.Counter("},{"line_number":175,"context_line":"                name\u003d\u0027storage.request.%s\u0027 % req_method,"},{"line_number":176,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":177,"context_line":"                unit\u003d\u0027request\u0027,"},{"line_number":178,"context_line":"                volume\u003d1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8xg%3D","line":175,"updated":"2013-04-10 15:26:42.000000000","message":"What do you think about using a single counter \u0027storage.request\u0027 or even \u0027storage.api.request\u0027 and including the method in the metadata field? That would make it easier to get a count of all requests of any type for a resource, while still making it possible to get just the PUT requests by filtering on the metadata. It would also mean fewer counters.","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"3608913d5ee23dd5addc49647c3c9ad19ebcd7c6","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            if req_method not in STANDARD_REQUEST_METHODS:"},{"line_number":173,"context_line":"                req_method \u003d \u0027other\u0027"},{"line_number":174,"context_line":"            publisher([counter.Counter("},{"line_number":175,"context_line":"                name\u003d\u0027storage.request.%s\u0027 % req_method,"},{"line_number":176,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":177,"context_line":"                unit\u003d\u0027request\u0027,"},{"line_number":178,"context_line":"                volume\u003d1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8ss%3D","line":175,"in_reply_to":"AAAAOn%2F%2F8xg%3D","updated":"2013-04-10 15:49:15.000000000","message":"+1","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"ec9cc2bb87dc079d38f9fa68e062644e2d3fd3ee","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            if req_method not in STANDARD_REQUEST_METHODS:"},{"line_number":173,"context_line":"                req_method \u003d \u0027other\u0027"},{"line_number":174,"context_line":"            publisher([counter.Counter("},{"line_number":175,"context_line":"                name\u003d\u0027storage.request.%s\u0027 % req_method,"},{"line_number":176,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":177,"context_line":"                unit\u003d\u0027request\u0027,"},{"line_number":178,"context_line":"                volume\u003d1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8oY%3D","line":175,"in_reply_to":"AAAAOn%2F%2F8xg%3D","updated":"2013-04-10 16:13:30.000000000","message":"As discussed on IRC ... agreed that a single storage.api.request counter would be best, as long as the request method is also captured and query-able in the metadata (as a rate limiting application based these metering data is very likely to want to distinguish between lists, gets, puts etc. seeing as the cost function varies so widely by API call type).","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"faebd04d9511fb931e19c9c5d8a613882a24cac6","unresolved":false,"context_lines":[{"line_number":172,"context_line":"            if req_method not in STANDARD_REQUEST_METHODS:"},{"line_number":173,"context_line":"                req_method \u003d \u0027other\u0027"},{"line_number":174,"context_line":"            publisher([counter.Counter("},{"line_number":175,"context_line":"                name\u003d\u0027storage.request.%s\u0027 % req_method,"},{"line_number":176,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":177,"context_line":"                unit\u003d\u0027request\u0027,"},{"line_number":178,"context_line":"                volume\u003d1,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8wk%3D","line":175,"in_reply_to":"AAAAOn%2F%2F8xg%3D","updated":"2013-04-10 16:21:29.000000000","message":"request method will be recorded in the metadata. all request will go into\none topic. storage.api.request.","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b9a133c82ce469009c406a527347fd09c3898993","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        ) as publisher:"},{"line_number":141,"context_line":"            if bytes_received:"},{"line_number":142,"context_line":"                publisher([counter.Counter("},{"line_number":143,"context_line":"                    name\u003d\u0027storage.objects.incoming.bytes\u0027,"},{"line_number":144,"context_line":"                    type\u003d\u0027delta\u0027,"},{"line_number":145,"context_line":"                    unit\u003d\u0027B\u0027,"},{"line_number":146,"context_line":"                    volume\u003dbytes_received,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8Gg%3D","line":143,"updated":"2013-04-10 20:26:30.000000000","message":"could you change this to use counter.TYPE_DELTA","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"44a5b8bf1801fb05f794021fadb3c7f09e5857f7","unresolved":false,"context_lines":[{"line_number":140,"context_line":"        ) as publisher:"},{"line_number":141,"context_line":"            if bytes_received:"},{"line_number":142,"context_line":"                publisher([counter.Counter("},{"line_number":143,"context_line":"                    name\u003d\u0027storage.objects.incoming.bytes\u0027,"},{"line_number":144,"context_line":"                    type\u003d\u0027delta\u0027,"},{"line_number":145,"context_line":"                    unit\u003d\u0027B\u0027,"},{"line_number":146,"context_line":"                    volume\u003dbytes_received,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8C0%3D","line":143,"in_reply_to":"AAAAOn%2F%2F8Gg%3D","updated":"2013-04-10 20:45:42.000000000","message":"Done","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b9a133c82ce469009c406a527347fd09c3898993","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            if bytes_sent:"},{"line_number":154,"context_line":"                publisher([counter.Counter("},{"line_number":155,"context_line":"                    name\u003d\u0027storage.objects.outgoing.bytes\u0027,"},{"line_number":156,"context_line":"                    type\u003d\u0027delta\u0027,"},{"line_number":157,"context_line":"                    unit\u003d\u0027B\u0027,"},{"line_number":158,"context_line":"                    volume\u003dbytes_sent,"},{"line_number":159,"context_line":"                    user_id\u003denv.get(\u0027HTTP_X_USER_ID\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8Gk%3D","line":156,"updated":"2013-04-10 20:26:30.000000000","message":"same","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"44a5b8bf1801fb05f794021fadb3c7f09e5857f7","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            if bytes_sent:"},{"line_number":154,"context_line":"                publisher([counter.Counter("},{"line_number":155,"context_line":"                    name\u003d\u0027storage.objects.outgoing.bytes\u0027,"},{"line_number":156,"context_line":"                    type\u003d\u0027delta\u0027,"},{"line_number":157,"context_line":"                    unit\u003d\u0027B\u0027,"},{"line_number":158,"context_line":"                    volume\u003dbytes_sent,"},{"line_number":159,"context_line":"                    user_id\u003denv.get(\u0027HTTP_X_USER_ID\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8Cw%3D","line":156,"in_reply_to":"AAAAOn%2F%2F8Gk%3D","updated":"2013-04-10 20:45:42.000000000","message":"Done","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b9a133c82ce469009c406a527347fd09c3898993","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            resource_metadata[\u0027method\u0027] \u003d req.method.lower()"},{"line_number":168,"context_line":"            publisher([counter.Counter("},{"line_number":169,"context_line":"                name\u003d\u0027storage.api.request\u0027,"},{"line_number":170,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":171,"context_line":"                unit\u003d\u0027request\u0027,"},{"line_number":172,"context_line":"                volume\u003d1,"},{"line_number":173,"context_line":"                user_id\u003denv.get(\u0027HTTP_X_USER_ID\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8GQ%3D","line":170,"updated":"2013-04-10 20:26:30.000000000","message":"this isn\u0027t cumulative. i would say it\u0027s counter.TYPE_DELTA unless others think its GAUGE. if its not GAUGE, measurements.rst will need to be updated as well.","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"44a5b8bf1801fb05f794021fadb3c7f09e5857f7","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            resource_metadata[\u0027method\u0027] \u003d req.method.lower()"},{"line_number":168,"context_line":"            publisher([counter.Counter("},{"line_number":169,"context_line":"                name\u003d\u0027storage.api.request\u0027,"},{"line_number":170,"context_line":"                type\u003dcounter.TYPE_CUMULATIVE,"},{"line_number":171,"context_line":"                unit\u003d\u0027request\u0027,"},{"line_number":172,"context_line":"                volume\u003d1,"},{"line_number":173,"context_line":"                user_id\u003denv.get(\u0027HTTP_X_USER_ID\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8Co%3D","line":170,"in_reply_to":"AAAAOn%2F%2F8GQ%3D","updated":"2013-04-10 20:45:42.000000000","message":"Done","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"}],"doc/source/measurements.rst":[{"author":{"_account_id":2284,"name":"Eoghan Glynn","email":"eglynn@redhat.com","username":"eglynn"},"change_message_id":"b50769dd5f7a929b81a0b43d14004165a3ab6c88","unresolved":false,"context_lines":[{"line_number":140,"context_line":"storage.objects.containers      Gauge       containers  store ID  Number of containers"},{"line_number":141,"context_line":"storage.objects.incoming.bytes  Delta                B  store ID  Number of incoming bytes"},{"line_number":142,"context_line":"storage.objects.outgoing.bytes  Delta                B  store ID  Number of outgoing bytes"},{"line_number":143,"context_line":"storage.api.request             Gauge          request  store ID  Number of request against swift"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Energy (Kwapi)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAOn%2F%2F8lM%3D","line":143,"updated":"2013-04-10 16:48:47.000000000","message":"Need to pluralize:\n\ns/Number of request/Number of requests/\n\nor even more specifically:\n\ns/Number of request/Number of API requests/","commit_id":"062ecb848be29fe9d5c5de5edbc180ddb7563310"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"9fb584115d0841a9cbcc5251de8a82b6e18557fa","unresolved":false,"context_lines":[{"line_number":140,"context_line":"storage.objects.containers      Gauge       containers  store ID  Number of containers"},{"line_number":141,"context_line":"storage.objects.incoming.bytes  Delta                B  store ID  Number of incoming bytes"},{"line_number":142,"context_line":"storage.objects.outgoing.bytes  Delta                B  store ID  Number of outgoing bytes"},{"line_number":143,"context_line":"storage.api.request             Gauge          request  store ID  Number of request against swift"},{"line_number":144,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"Energy (Kwapi)"}],"source_content_type":"text/x-rst","patch_set":2,"id":"AAAAOn%2F%2F8k8%3D","line":143,"in_reply_to":"AAAAOn%2F%2F8lM%3D","updated":"2013-04-10 16:50:34.000000000","message":"done","commit_id":"062ecb848be29fe9d5c5de5edbc180ddb7563310"}],"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":"3608913d5ee23dd5addc49647c3c9ad19ebcd7c6","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":240,"context_line":"        resp \u003d list(app(req.environ, self.start_response))"},{"line_number":241,"context_line":"        counters \u003d self.pipeline_manager.pipelines[0].counters"},{"line_number":242,"context_line":"        # There is an extra counter for # of requests."},{"line_number":243,"context_line":"        self.assertEqual(len(counters), 2)"},{"line_number":244,"context_line":"        data \u003d counters[0]"},{"line_number":245,"context_line":"        http_headers \u003d [k for k in data.resource_metadata.keys()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8so%3D","line":242,"updated":"2013-04-10 15:49:15.000000000","message":"No need for such comment I think :)","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"8a306d2e1d69e6fd497bcd7689a8c1347dfcaf67","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":240,"context_line":"        resp \u003d list(app(req.environ, self.start_response))"},{"line_number":241,"context_line":"        counters \u003d self.pipeline_manager.pipelines[0].counters"},{"line_number":242,"context_line":"        # There is an extra counter for # of requests."},{"line_number":243,"context_line":"        self.assertEqual(len(counters), 2)"},{"line_number":244,"context_line":"        data \u003d counters[0]"},{"line_number":245,"context_line":"        http_headers \u003d [k for k in data.resource_metadata.keys()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8mk%3D","line":242,"in_reply_to":"AAAAOn%2F%2F8m4%3D","updated":"2013-04-10 16:25:29.000000000","message":"That only applies to people in the review; future readers of the code will not understand why you talk about something extra.","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"61eb0862717f9bb5ac0dfa12f85381c5f3e36462","unresolved":false,"context_lines":[{"line_number":239,"context_line":"                            environ\u003d{\u0027REQUEST_METHOD\u0027: \u0027GET\u0027})"},{"line_number":240,"context_line":"        resp \u003d list(app(req.environ, self.start_response))"},{"line_number":241,"context_line":"        counters \u003d self.pipeline_manager.pipelines[0].counters"},{"line_number":242,"context_line":"        # There is an extra counter for # of requests."},{"line_number":243,"context_line":"        self.assertEqual(len(counters), 2)"},{"line_number":244,"context_line":"        data \u003d counters[0]"},{"line_number":245,"context_line":"        http_headers \u003d [k for k in data.resource_metadata.keys()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAOn%2F%2F8m4%3D","line":242,"in_reply_to":"AAAAOn%2F%2F8so%3D","updated":"2013-04-10 16:23:42.000000000","message":"people might wonder why it is two now. just to make sure people understand\nthis","commit_id":"bacbd62c17691e32203da049c09307bb9fea5aab"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"b9a133c82ce469009c406a527347fd09c3898993","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_bogus_request(self):"},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        test even for arbitrary request method, this will still work"},{"line_number":164,"context_line":"        \"\"\""},{"line_number":165,"context_line":"        app \u003d swift_middleware.CeilometerMiddleware(FakeApp(body\u003d[\u0027\u0027]), {})"},{"line_number":166,"context_line":"        req \u003d Request.blank(\u0027/1.0/account/container/obj\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8F4%3D","line":163,"updated":"2013-04-10 20:26:30.000000000","message":"is \u0027even\u0027 suppose to be \u0027event\u0027?","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":6537,"name":"gordon chung","email":"gord@live.ca","username":"chungg"},"change_message_id":"16e14a9322840da61f2f2aecf17aeae9572364f9","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_bogus_request(self):"},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        test even for arbitrary request method, this will still work"},{"line_number":164,"context_line":"        \"\"\""},{"line_number":165,"context_line":"        app \u003d swift_middleware.CeilometerMiddleware(FakeApp(body\u003d[\u0027\u0027]), {})"},{"line_number":166,"context_line":"        req \u003d Request.blank(\u0027/1.0/account/container/obj\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8AQ%3D","line":163,"in_reply_to":"AAAAOn%2F%2F8Ck%3D","updated":"2013-04-10 20:57:13.000000000","message":"whooops. yes. it makes sense. i was reading it wrong. :)","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"44a5b8bf1801fb05f794021fadb3c7f09e5857f7","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"    def test_bogus_request(self):"},{"line_number":162,"context_line":"        \"\"\""},{"line_number":163,"context_line":"        test even for arbitrary request method, this will still work"},{"line_number":164,"context_line":"        \"\"\""},{"line_number":165,"context_line":"        app \u003d swift_middleware.CeilometerMiddleware(FakeApp(body\u003d[\u0027\u0027]), {})"},{"line_number":166,"context_line":"        req \u003d Request.blank(\u0027/1.0/account/container/obj\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAOn%2F%2F8Ck%3D","line":163,"in_reply_to":"AAAAOn%2F%2F8F4%3D","updated":"2013-04-10 20:45:42.000000000","message":"I think it meant to be even, so even the request is not standard http request,\nlike a bogus request method, it will still work.","commit_id":"a4786202acffb528c331208973aa268e6d9ab8ed"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"3f162fd9160d472e9245935c2188aef8f3a0853c","unresolved":false,"context_lines":[{"line_number":84,"context_line":"        resp \u003d app(req.environ, self.start_response)"},{"line_number":85,"context_line":"        self.assertEqual(list(resp), [\"This string is 28 bytes long\"])"},{"line_number":86,"context_line":"        counters \u003d self.pipeline_manager.pipelines[0].counters"},{"line_number":87,"context_line":"        # There is an extra counter for # of requests."},{"line_number":88,"context_line":"        self.assertEqual(len(counters), 2)"},{"line_number":89,"context_line":"        data \u003d counters[0]"},{"line_number":90,"context_line":"        self.assertEqual(data.volume, 28)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOn%2F%2F6%2Bw%3D","line":87,"updated":"2013-04-11 15:06:22.000000000","message":"I still think this comments suck.","commit_id":"ec21399ef61e45039b1a44ace66064880e2b15fe"}]}
