)]}'
{"ceilometer/storage/impl_mongodb.py":[{"author":{"_account_id":7399,"name":"Terri Yu","email":"teryu@alum.mit.edu","username":"terriyu"},"change_message_id":"2be2c95161dd98d3c9f82c756aff46fad7a9af0e","unresolved":false,"context_lines":[{"line_number":449,"context_line":"        if limit \u003d\u003d 0:"},{"line_number":450,"context_line":"            return"},{"line_number":451,"context_line":"        q \u003d make_query_from_filter(sample_filter, require_meter\u003dFalse)"},{"line_number":452,"context_line":"        samples \u003d self.db.meter.find(q).limit(limit or 0).sort( { timestamp: -1 } )"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        for s in samples:"},{"line_number":455,"context_line":"            # Remove the ObjectId generated by the database when"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAPX%2F%2Fww8%3D","line":452,"updated":"2013-06-11 05:44:59.000000000","message":"This is giving me an error:\n\nNameError: global name \u0027timestamp\u0027 is not defined","commit_id":"c66b38754142188953431e5a99816fb28eb4ade5"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"a2da04006695fc81e1b50eac33da5afadad0d522","unresolved":false,"context_lines":[{"line_number":449,"context_line":"        if limit \u003d\u003d 0:"},{"line_number":450,"context_line":"            return"},{"line_number":451,"context_line":"        q \u003d make_query_from_filter(sample_filter, require_meter\u003dFalse)"},{"line_number":452,"context_line":"        samples \u003d self.db.meter.find(q).limit(limit or 0).sort( { timestamp: -1 } )"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        for s in samples:"},{"line_number":455,"context_line":"            # Remove the ObjectId generated by the database when"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAPX%2F%2FwpE%3D","line":452,"in_reply_to":"AAAAPX%2F%2Fww8%3D","updated":"2013-06-11 07:33:47.000000000","message":"This is normal, here Python interprets Python as a variable. Check this:\n\n \u003e\u003e\u003e a \u003d \"foobar\"\n \u003e\u003e\u003e b \u003d { a: 1 }\n \u003e\u003e\u003e b\n {\u0027foobar\u0027: 1}\n\n\nChecking the documentation, you should be able to use the sort argument to find like find(sort\u003d[(\"timestamp\", pymongo.DESCENDING)])\n\n\nhttp://api.mongodb.org/python/current/api/pymongo/collection.html","commit_id":"c66b38754142188953431e5a99816fb28eb4ade5"},{"author":{"_account_id":2860,"name":"litong01","email":"email4tong@yahoo.com","username":"litong01"},"change_message_id":"880f12fa328cc94d9ed15ed0e0aa664146da1589","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        if limit \u003d\u003d 0:"},{"line_number":449,"context_line":"            return"},{"line_number":450,"context_line":"        q \u003d make_query_from_filter(sample_filter, require_meter\u003dFalse)"},{"line_number":451,"context_line":"        samples \u003d self.db.meter.find(q, limit\u003dlimit,"},{"line_number":452,"context_line":"                                     sort\u003d[(\"timestamp\", pymongo.DESCENDING)])"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        for s in samples:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAPX%2F%2FsSg%3D","line":451,"updated":"2013-06-12 17:56:53.000000000","message":"The meter index was created by pymongo.ASCENDING. Here using the DESCENDING order which cause the worst use case scenario. If there is no\nparticular reason, probably using the ASCENDING for this?","commit_id":"1961ec9c733890b24bc47a4cd1168624e76c2477"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"50ea019cc2e64f0dfac77d81311ad1563d58c8a1","unresolved":false,"context_lines":[{"line_number":448,"context_line":"        if limit \u003d\u003d 0:"},{"line_number":449,"context_line":"            return"},{"line_number":450,"context_line":"        q \u003d make_query_from_filter(sample_filter, require_meter\u003dFalse)"},{"line_number":451,"context_line":"        samples \u003d self.db.meter.find(q, limit\u003dlimit,"},{"line_number":452,"context_line":"                                     sort\u003d[(\"timestamp\", pymongo.DESCENDING)])"},{"line_number":453,"context_line":""},{"line_number":454,"context_line":"        for s in samples:"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAPX%2F%2FsDg%3D","line":451,"in_reply_to":"AAAAPX%2F%2FsSg%3D","updated":"2013-06-12 19:03:12.000000000","message":"No, we really want DESCENDING.\nMaybe creating a second index would be worth it, but that shouldn\u0027t hold this patch.","commit_id":"1961ec9c733890b24bc47a4cd1168624e76c2477"}],"tests/storage/base.py":[{"author":{"_account_id":6316,"name":"Anita Kuno","email":"anteaya@anteaya.info","username":"anteaya"},"change_message_id":"3c9572c5e3533c2faf76a1a27f64dd2dba41c3a1","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        f \u003d storage.SampleFilter()"},{"line_number":276,"context_line":"        results \u003d list(self.conn.get_samples(f))"},{"line_number":277,"context_line":"        for i in range(len(results)-1):"},{"line_number":278,"context_line":"            assert results[i].timestamp \u003e\u003d results[i+1].timestamp "},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def test_get_samples_by_user(self):"},{"line_number":281,"context_line":"        f \u003d storage.SampleFilter(user\u003d\u0027user-id\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAPH%2F%2FjGc%3D","line":278,"updated":"2013-05-30 19:22:38.000000000","message":"Let\u0027s lose this whitespace.","commit_id":"56a8ace557e6e8d8a8430e6e2a8c979f8ec034cf"},{"author":{"_account_id":688,"name":"Sandy Walsh","email":"sandy.walsh@rackspace.com","username":"sandy-walsh"},"change_message_id":"ce608c811cbb9d8e06851e9199a8d5936c43980b","unresolved":false,"context_lines":[{"line_number":274,"context_line":"    def test_get_samples_in_default_order(self):"},{"line_number":275,"context_line":"        f \u003d storage.SampleFilter()"},{"line_number":276,"context_line":"        results \u003d list(self.conn.get_samples(f))"},{"line_number":277,"context_line":"        for i in range(len(results) - 1):"},{"line_number":278,"context_line":"            assert results[i].timestamp \u003e\u003d results[i + 1].timestamp"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def test_get_samples_by_user(self):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2FgbI%3D","line":277,"updated":"2013-05-31 16:39:55.000000000","message":"use enumerate() and drop the list()","commit_id":"742320de05996a1efe8ca82cbe6e226eb5f15388"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"74563c8e97b06c2e61ada467e6262ade12925a8d","unresolved":false,"context_lines":[{"line_number":275,"context_line":"        f \u003d storage.SampleFilter()"},{"line_number":276,"context_line":"        results \u003d list(self.conn.get_samples(f))"},{"line_number":277,"context_line":"        for i in range(len(results) - 1):"},{"line_number":278,"context_line":"            assert results[i].timestamp \u003e\u003d results[i + 1].timestamp"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def test_get_samples_by_user(self):"},{"line_number":281,"context_line":"        f \u003d storage.SampleFilter(user\u003d\u0027user-id\u0027)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPH%2F%2Fixk%3D","line":278,"updated":"2013-05-30 21:01:36.000000000","message":"use self.assertGreatEqual()","commit_id":"742320de05996a1efe8ca82cbe6e226eb5f15388"}]}
