)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for CooperativeReader to properly process read length"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CooperativeReader, being an eventlet-friendly wrapper around the generator-"},{"line_number":10,"context_line":"based reader of image data, actually transforms chunk-by-chunk iteration into"},{"line_number":11,"context_line":"the readable stream. It is used when the image is being copied from the remote"},{"line_number":12,"context_line":"source: some generator-based image data representing the remote source acts as"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da86d52c_9d1c8e79","line":9,"updated":"2015-02-02 22:25:46.000000000","message":"You may want to resize the commit message a bit.\n\nThe title is supposed to be max 50chars and the description width max 72chars.","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for CooperativeReader to properly process read length"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"CooperativeReader, being an eventlet-friendly wrapper around the generator-"},{"line_number":10,"context_line":"based reader of image data, actually transforms chunk-by-chunk iteration into"},{"line_number":11,"context_line":"the readable stream. It is used when the image is being copied from the remote"},{"line_number":12,"context_line":"source: some generator-based image data representing the remote source acts as"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"da86d52c_2a9f5b04","line":9,"in_reply_to":"da86d52c_9d1c8e79","updated":"2015-02-05 11:25:37.000000000","message":"Done","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"}],"glance/common/utils.py":[{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"58875ffc4e2784787717ee0ea9f5961a02b30d3e","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        if hasattr(fd, \u0027read\u0027):"},{"line_number":151,"context_line":"            self.read \u003d cooperative_read(fd)"},{"line_number":152,"context_line":"        else:"},{"line_number":153,"context_line":"            self.iterator \u003d iter(fd)"},{"line_number":154,"context_line":"            self.buffer \u003d bytearray()"},{"line_number":155,"context_line":"            self.position \u003d 0"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_351467f4","line":153,"updated":"2015-01-23 12:25:25.000000000","message":"self.iterator \u003d self.__iter__() ? for co-work with eventlet well.","commit_id":"6e3f31e3d7439f56905cc2888cdbf908dc3bb70b"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"dbf7fa79bc1ff4a256640716191738604fb265d6","unresolved":false,"context_lines":[{"line_number":150,"context_line":"        if hasattr(fd, \u0027read\u0027):"},{"line_number":151,"context_line":"            self.read \u003d cooperative_read(fd)"},{"line_number":152,"context_line":"        else:"},{"line_number":153,"context_line":"            self.iterator \u003d iter(fd)"},{"line_number":154,"context_line":"            self.buffer \u003d bytearray()"},{"line_number":155,"context_line":"            self.position \u003d 0"},{"line_number":156,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1a930d6b_bc4bdf85","line":153,"in_reply_to":"1a930d6b_351467f4","updated":"2015-01-23 13:42:48.000000000","message":"Done. Thanks, Zhi.","commit_id":"6e3f31e3d7439f56905cc2888cdbf908dc3bb70b"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"da86d52c_d348b789","updated":"2015-02-02 22:25:46.000000000","message":"We can update this to 2015, I think. Seems like an important IP change.","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"da86d52c_ca523f34","in_reply_to":"da86d52c_d348b789","updated":"2015-02-05 11:25:37.000000000","message":"Done. As far as I know the proper way of doing this is too add a new \"year, company\" message instead of altering the old ones.","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":183,"context_line":"                    self.buffer \u003d \u0027\u0027"},{"line_number":184,"context_line":"                    self.position \u003d 0"},{"line_number":185,"context_line":"        else:"},{"line_number":186,"context_line":"            result \u003d bytearray()"},{"line_number":187,"context_line":"            while len(result) \u003c length:"},{"line_number":188,"context_line":"                if self.position \u003c len(self.buffer):"},{"line_number":189,"context_line":"                    to_read \u003d length - len(result)"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_d37197e1","line":186,"updated":"2015-02-02 22:25:46.000000000","message":"There is a potential memory issue with this proposal. We need a way to either reference the iterator data already in memory or have a way to limit the buffer size so that the host does not go OOM.\n\nUnfortunately, we were not able to link IRC logs as they are yet to be uploaded. Please find a paste of the conversation here:\n \nhttp://paste.openstack.org/show/165800/","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"}],"glance/tests/unit/common/test_utils.py":[{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":385,"context_line":""},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"class UUIDTestCase(test_utils.BaseTestCase):"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def test_is_uuid_like(self):"},{"line_number":390,"context_line":"        self.assertTrue(utils.is_uuid_like(str(uuid.uuid4())))"},{"line_number":391,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_f325bbc2","side":"PARENT","line":388,"updated":"2015-02-02 22:25:46.000000000","message":"not a relevant change.","commit_id":"3445866403b2076a576838dbaabd1541a66cb426"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[{"line_number":385,"context_line":""},{"line_number":386,"context_line":""},{"line_number":387,"context_line":"class UUIDTestCase(test_utils.BaseTestCase):"},{"line_number":388,"context_line":""},{"line_number":389,"context_line":"    def test_is_uuid_like(self):"},{"line_number":390,"context_line":"        self.assertTrue(utils.is_uuid_like(str(uuid.uuid4())))"},{"line_number":391,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_6a05d344","side":"PARENT","line":388,"in_reply_to":"da86d52c_f325bbc2","updated":"2015-02-05 11:25:37.000000000","message":"Same as in the header: seems like my IDE tries to be smarter then it is.","commit_id":"3445866403b2076a576838dbaabd1541a66cb426"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7d2c3a03","line":1,"updated":"2015-02-02 22:25:46.000000000","message":"We can change this to 2015, I think.\n\nSounds like a big enough change?","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_0a19b7d6","line":1,"in_reply_to":"da86d52c_7d2c3a03","updated":"2015-02-05 11:25:37.000000000","message":"Done","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"},{"line_number":7,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_fdf82a7e","line":4,"updated":"2015-02-02 22:25:46.000000000","message":"Did you change this on purpose?","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright 2011 OpenStack Foundation"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"# Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":5,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":6,"context_line":"#    a copy of the License at"},{"line_number":7,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_8a24c70d","line":4,"in_reply_to":"da86d52c_fdf82a7e","updated":"2015-02-05 11:25:37.000000000","message":"Nope. Seems like my IDE \"automatically\" reformats these. Changed back.","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3d29cfc59e72621b3aae1e376158b32d9425f93f","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertEqual(\u0027\u0027, meat)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _create_generator(self, chunk_size, max_iterations):"},{"line_number":78,"context_line":"            chars \u003d \u0027abc\u0027"},{"line_number":79,"context_line":"            iteration \u003d 0"},{"line_number":80,"context_line":"            while True:"},{"line_number":81,"context_line":"                chunk \u003d chars[iteration % len(chars)] * chunk_size"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7d06facf","line":78,"updated":"2015-02-02 21:02:26.000000000","message":"Odd indentation here.","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertEqual(\u0027\u0027, meat)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _create_generator(self, chunk_size, max_iterations):"},{"line_number":78,"context_line":"            chars \u003d \u0027abc\u0027"},{"line_number":79,"context_line":"            iteration \u003d 0"},{"line_number":80,"context_line":"            while True:"},{"line_number":81,"context_line":"                chunk \u003d chars[iteration % len(chars)] * chunk_size"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_ca715f0d","line":78,"in_reply_to":"da86d52c_7d06facf","updated":"2015-02-05 11:25:37.000000000","message":"Done","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":75,"context_line":"        self.assertEqual(\u0027\u0027, meat)"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def _create_generator(self, chunk_size, max_iterations):"},{"line_number":78,"context_line":"            chars \u003d \u0027abc\u0027"},{"line_number":79,"context_line":"            iteration \u003d 0"},{"line_number":80,"context_line":"            while True:"},{"line_number":81,"context_line":"                chunk \u003d chars[iteration % len(chars)] * chunk_size"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7d327a11","line":78,"in_reply_to":"da86d52c_7d06facf","updated":"2015-02-02 22:25:46.000000000","message":"Good catch, my browser is not showing the indentations very well. Ever other place shows 2ws whereas here it shows 4ws.\n\nIs it gerrit or may be just me?","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":12000,"name":"Ian Cordasco","email":"sigmavirus24@gmail.com","username":"sigmavirus24"},"change_message_id":"3d29cfc59e72621b3aae1e376158b32d9425f93f","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        expected \u003d (\u0027a\u0027 * chunk_size +"},{"line_number":123,"context_line":"                    \u0027b\u0027 * chunk_size +"},{"line_number":124,"context_line":"                    \u0027c\u0027 * chunk_size +"},{"line_number":125,"context_line":"                    \u0027a\u0027 * chunk_size +"},{"line_number":126,"context_line":"                    \u0027b\u0027 * chunk_size)"},{"line_number":127,"context_line":"        self.assertEqual(expected, result)"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_9dd72e23","line":125,"updated":"2015-02-02 21:02:26.000000000","message":"Could these be all abstracted to a test that takes the chunk and read sizes and makes the assertions there? They\u0027re all the same code unless I missed something.","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":2537,"name":"Nikhil Komawar","email":"nik.komawar@gmail.com","username":"nikhil-komawar"},"change_message_id":"4b02903928b68b68d461b3dc14b5d4ddb1d5e4e8","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        expected \u003d (\u0027a\u0027 * chunk_size +"},{"line_number":123,"context_line":"                    \u0027b\u0027 * chunk_size +"},{"line_number":124,"context_line":"                    \u0027c\u0027 * chunk_size +"},{"line_number":125,"context_line":"                    \u0027a\u0027 * chunk_size +"},{"line_number":126,"context_line":"                    \u0027b\u0027 * chunk_size)"},{"line_number":127,"context_line":"        self.assertEqual(expected, result)"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_93355ff9","line":125,"in_reply_to":"da86d52c_9dd72e23","updated":"2015-02-02 22:25:46.000000000","message":"+1","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"},{"author":{"_account_id":8127,"name":"Alexander Tivelkov","email":"locher@yandex.ru","username":"ativelkov"},"change_message_id":"f6b35aa5463d1dd454de2e2da6b145487770e082","unresolved":false,"context_lines":[{"line_number":122,"context_line":"        expected \u003d (\u0027a\u0027 * chunk_size +"},{"line_number":123,"context_line":"                    \u0027b\u0027 * chunk_size +"},{"line_number":124,"context_line":"                    \u0027c\u0027 * chunk_size +"},{"line_number":125,"context_line":"                    \u0027a\u0027 * chunk_size +"},{"line_number":126,"context_line":"                    \u0027b\u0027 * chunk_size)"},{"line_number":127,"context_line":"        self.assertEqual(expected, result)"},{"line_number":128,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_8a520765","line":125,"in_reply_to":"da86d52c_9dd72e23","updated":"2015-02-05 11:25:37.000000000","message":"Done","commit_id":"24f66d7a3168dcce7d73165d612c52d457e20b08"}]}
