)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7051,"name":"Swapnil Kulkarni","email":"skulkarn@redhat.com","username":"swapnilkulkarni2608"},"change_message_id":"48ffaa3500f5cd5cf4d4bde93f2147d7955c3b30","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This will make it easier to share rbd-related code with"},{"line_number":10,"context_line":"cinder and glance."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5bf08da87daf1d98f326f21cf33aba68aa830785"},{"line_number":13,"context_line":"Signed-off-by: Josh Durgin \u003cjosh.durgin@inktank.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAUH%2F%2FEHQ%3D","line":12,"updated":"2014-01-17 19:32:31.000000000","message":"Please add Closes-Bug: #1226351","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"0f160e3ae602833fcac14582b171bd1db3913f98","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This will make it easier to share rbd-related code with"},{"line_number":10,"context_line":"cinder and glance."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5bf08da87daf1d98f326f21cf33aba68aa830785"},{"line_number":13,"context_line":"Signed-off-by: Josh Durgin \u003cjosh.durgin@inktank.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAUH%2F%2Bs1E%3D","line":12,"in_reply_to":"AAAAUH%2F%2FEFw%3D","updated":"2014-01-23 01:45:46.000000000","message":"modified to be purely refactoring, so it\u0027s not helping to close the bug.","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"},{"author":{"_account_id":7051,"name":"Swapnil Kulkarni","email":"skulkarn@redhat.com","username":"swapnilkulkarni2608"},"change_message_id":"2e9cf6a396c6d75072b3da65d59e2eba165f85cd","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This will make it easier to share rbd-related code with"},{"line_number":10,"context_line":"cinder and glance."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I5bf08da87daf1d98f326f21cf33aba68aa830785"},{"line_number":13,"context_line":"Signed-off-by: Josh Durgin \u003cjosh.durgin@inktank.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"AAAAUH%2F%2FEFw%3D","line":12,"in_reply_to":"AAAAUH%2F%2FEHQ%3D","updated":"2014-01-17 19:36:04.000000000","message":"or Partial-Bug: #1226351","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"}],"nova/tests/virt/libvirt/test_rbd_utils.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"8048b698a53e518a5d664c49961e620c9b9d2a58","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAVn%2F%2FK%2Fc%3D","line":1,"updated":"2014-03-07 21:38:26.000000000","message":"Thanks for adding these unit tests.","commit_id":"a99afca5d0a16f7de8b6717b602eec9fef007589"}],"nova/virt/libvirt/imagebackend.py":[{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"646ddb2012ed07d02f2055ee01cf524cc1467ed4","unresolved":false,"context_lines":[{"line_number":406,"context_line":"                             run_as_root\u003dTrue)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"class Rbd(Image, rbd_utils.RBDDriver):"},{"line_number":410,"context_line":"    def __init__(self, instance\u003dNone, disk_name\u003dNone, path\u003dNone,"},{"line_number":411,"context_line":"                 snapshot_name\u003dNone, **kwargs):"},{"line_number":412,"context_line":"        super(Rbd, self).__init__(\"block\", \"rbd\", is_block_dev\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FEx8%3D","line":409,"updated":"2014-01-17 17:24:35.000000000","message":"I\u0027m not really convinced that using multiple inheritance like this leads to a good design - IMHO it is making it quite hard to understand the design.\n\nI\u0027d much rather see the Rbd class simply hold a reference to an instance of RBDDriver() instead.\n\neg self.driver \u003d rbd_utils.RBDDriver()","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"0f160e3ae602833fcac14582b171bd1db3913f98","unresolved":false,"context_lines":[{"line_number":406,"context_line":"                             run_as_root\u003dTrue)"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"class Rbd(Image, rbd_utils.RBDDriver):"},{"line_number":410,"context_line":"    def __init__(self, instance\u003dNone, disk_name\u003dNone, path\u003dNone,"},{"line_number":411,"context_line":"                 snapshot_name\u003dNone, **kwargs):"},{"line_number":412,"context_line":"        super(Rbd, self).__init__(\"block\", \"rbd\", is_block_dev\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Bs1A%3D","line":409,"in_reply_to":"AAAAUH%2F%2FEx8%3D","updated":"2014-01-23 01:45:46.000000000","message":"Good idea, updated to use a reference instead of inheritance.","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"}],"nova/virt/libvirt/rbd_utils.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"aa7c83d5ad549b8795af17100069fba0f13aa7cc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    import rbd"},{"line_number":14,"context_line":"except ImportError:"},{"line_number":15,"context_line":"    rados \u003d None"},{"line_number":16,"context_line":"    rbd \u003d None"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class ImageUnacceptable(Exception):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2F77s%3D","line":16,"updated":"2014-01-06 15:14:37.000000000","message":"I think these imports should go above the LOG line.","commit_id":"f7085f97d50faa4fc2e1dab3b9f4ffd61bfec87c"},{"author":{"_account_id":6549,"name":"Zhi Yan Liu","email":"lzy.dev@gmail.com","username":"lzy-dev"},"change_message_id":"9bc95fae8d9f9d3848a77824fb064783fa51f57e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    import rbd"},{"line_number":14,"context_line":"except ImportError:"},{"line_number":15,"context_line":"    rados \u003d None"},{"line_number":16,"context_line":"    rbd \u003d None"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class ImageUnacceptable(Exception):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2Ftmw%3D","line":16,"in_reply_to":"AAAAUH%2F%2F77s%3D","updated":"2014-01-09 17:52:22.000000000","message":"Done, thanks David.","commit_id":"f7085f97d50faa4fc2e1dab3b9f4ffd61bfec87c"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"9f96d746e43bdaa22746a0102ebced619c9615dd","unresolved":false,"context_lines":[{"line_number":154,"context_line":"            reason \u003d _(\u0027Not stored in rbd\u0027)"},{"line_number":155,"context_line":"            raise exception.ImageUnacceptable(image_id\u003dlocation, reason\u003dreason)"},{"line_number":156,"context_line":"        pieces \u003d map(urllib.unquote, location[len(prefix):].split(\u0027/\u0027))"},{"line_number":157,"context_line":"        if any(map(lambda p: p \u003d\u003d \u0027\u0027, pieces)):"},{"line_number":158,"context_line":"            reason \u003d _(\u0027Blank components\u0027)"},{"line_number":159,"context_line":"            raise exception.ImageUnacceptable(image_id\u003dlocation, reason\u003dreason)"},{"line_number":160,"context_line":"        if len(pieces) !\u003d 4:"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2FQL0%3D","line":157,"updated":"2014-01-15 21:13:18.000000000","message":"I think this is much more clearly written as:\n\nif \u0027\u0027 in pieces\n\nbut if you don\u0027t want to change it to avoid churn, I understand.","commit_id":"4b94c54814c2f689b0e5d0b0742f9731aaf68302"},{"author":{"_account_id":1779,"name":"Daniel Berrange","email":"berrange@redhat.com","username":"berrange"},"change_message_id":"646ddb2012ed07d02f2055ee01cf524cc1467ed4","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        with RADOSClient(self) as client:"},{"line_number":234,"context_line":"            self.rbd.RBD().rename(client.ioctx,"},{"line_number":235,"context_line":"                                  name.encode(\u0027utf-8\u0027),"},{"line_number":236,"context_line":"                                  new_name.encode(\u0027utf-8\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2FExo%3D","line":236,"updated":"2014-01-17 17:24:35.000000000","message":"There is a hell of alot more code being added here than was removed from the imagebackend.py class.\n\nYou commit message is claiming this is simple refactoring / move of the code, so please stick to doing that - don\u0027t add new functionality - just refactor. Any new methods / code can be added in a separate commit at the time they are actually needed.","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"0f160e3ae602833fcac14582b171bd1db3913f98","unresolved":false,"context_lines":[{"line_number":233,"context_line":"        with RADOSClient(self) as client:"},{"line_number":234,"context_line":"            self.rbd.RBD().rename(client.ioctx,"},{"line_number":235,"context_line":"                                  name.encode(\u0027utf-8\u0027),"},{"line_number":236,"context_line":"                                  new_name.encode(\u0027utf-8\u0027))"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Bs1o%3D","line":236,"in_reply_to":"AAAAUH%2F%2FExo%3D","updated":"2014-01-23 01:45:46.000000000","message":"Modified this commit to be purely refactoring.","commit_id":"4d2081f6eb53b4e3131f01105a09b571fd6a9341"},{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"8ce8a00c281bff032343c71ee7c9c5b0fa91fd18","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    import rbd"},{"line_number":21,"context_line":"except ImportError:"},{"line_number":22,"context_line":"    rados \u003d None"},{"line_number":23,"context_line":"    rbd \u003d None"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BjBY%3D","line":23,"updated":"2014-01-24 14:44:32.000000000","message":"This block should be above the nova imports.","commit_id":"614964b8411c4c13fc4b672f3bf99ba0441d9e35"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"4406f1521e95ad370fe6b5a12772e3f754e6b279","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    import rbd"},{"line_number":21,"context_line":"except ImportError:"},{"line_number":22,"context_line":"    rados \u003d None"},{"line_number":23,"context_line":"    rbd \u003d None"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAUH%2F%2BiJE%3D","line":23,"in_reply_to":"AAAAUH%2F%2BjBY%3D","updated":"2014-01-24 17:03:41.000000000","message":"Done","commit_id":"614964b8411c4c13fc4b672f3bf99ba0441d9e35"},{"author":{"_account_id":7593,"name":"Haomai Wang","email":"haomaiwang@gmail.com","username":"HaomaiWang"},"change_message_id":"e2f5a1eae3d5d5d3cd4758fbe7e22a30ddde312a","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            return vol.size()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def resize(self, volume_name, size):"},{"line_number":136,"context_line":"        size \u003d int(size) * 1024"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        with RBDVolumeProxy(self, volume_name) as vol:"},{"line_number":139,"context_line":"            vol.resize(size)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F%2BKbg%3D","line":136,"updated":"2014-01-29 15:20:24.000000000","message":"This is a bug(https://review.openstack.org/#/c/55047/2) I introduced and I hope we can fix here.","commit_id":"193862ce9360e279a9a415630147a18d96bf300a"},{"author":{"_account_id":1107,"name":"Josh Durgin","email":"jdurgin@redhat.com","username":"jdurgin"},"change_message_id":"2828809528f43daa294e1ba5d86c7f9c8c72f859","unresolved":false,"context_lines":[{"line_number":133,"context_line":"            return vol.size()"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    def resize(self, volume_name, size):"},{"line_number":136,"context_line":"        size \u003d int(size) * 1024"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        with RBDVolumeProxy(self, volume_name) as vol:"},{"line_number":139,"context_line":"            vol.resize(size)"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAUH%2F%2BKPs%3D","line":136,"in_reply_to":"AAAAUH%2F%2BKbg%3D","updated":"2014-01-29 15:48:47.000000000","message":"it\u0027s fixed in the next patch","commit_id":"193862ce9360e279a9a415630147a18d96bf300a"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"8048b698a53e518a5d664c49961e620c9b9d2a58","unresolved":false,"context_lines":[{"line_number":1,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"},{"line_number":2,"context_line":"#    not use this file except in compliance with the License. You may obtain"},{"line_number":3,"context_line":"#    a copy of the License at"},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":26,"id":"AAAAVn%2F%2FK%2Fk%3D","line":1,"updated":"2014-03-07 21:38:26.000000000","message":"I think you need to preserve the copyright statement from imagebackend here.","commit_id":"a99afca5d0a16f7de8b6717b602eec9fef007589"}]}
