)]}'
{"cinder/image/image_utils.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"94f9ddbe0f0a8d12d3a7c06b65a60547801726b4","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                                                   \u0027oflag\u003ddirect\u0027)):"},{"line_number":146,"context_line":"        cmd \u003d prefix + [\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-t\u0027, \u0027none\u0027]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if src_format is not None:"},{"line_number":149,"context_line":"            cmd.extend([\u0027-f\u0027, src_format])  # prevent detection of format"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        cmd.extend([\u0027-O\u0027, out_format, source, dest])"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_fb468c7c","line":148,"updated":"2017-04-07 14:52:10.000000000","message":"nit: `if src_format:` is more pythonic","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b324ea3224ba000c942fd9bae01e6b93061ac1b9","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                                                   \u0027oflag\u003ddirect\u0027)):"},{"line_number":146,"context_line":"        cmd \u003d prefix + [\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-t\u0027, \u0027none\u0027]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if src_format is not None:"},{"line_number":149,"context_line":"            cmd.extend([\u0027-f\u0027, src_format])  # prevent detection of format"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        cmd.extend([\u0027-O\u0027, out_format, source, dest])"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_526ac0ec","line":148,"in_reply_to":"bff0334d_fb468c7c","updated":"2017-04-10 18:13:09.000000000","message":"It\u0027s also not identical because it accepts False...","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"94f9ddbe0f0a8d12d3a7c06b65a60547801726b4","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        cmd \u003d prefix + [\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-t\u0027, \u0027none\u0027]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if src_format is not None:"},{"line_number":149,"context_line":"            cmd.extend([\u0027-f\u0027, src_format])  # prevent detection of format"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        cmd.extend([\u0027-O\u0027, out_format, source, dest])"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_7bdb9c1a","line":149,"updated":"2017-04-07 14:52:10.000000000","message":"nit: We could pass a tuple instead of a list (it\u0027s cheaper).","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b324ea3224ba000c942fd9bae01e6b93061ac1b9","unresolved":false,"context_lines":[{"line_number":146,"context_line":"        cmd \u003d prefix + [\u0027qemu-img\u0027, \u0027convert\u0027, \u0027-t\u0027, \u0027none\u0027]"},{"line_number":147,"context_line":""},{"line_number":148,"context_line":"        if src_format is not None:"},{"line_number":149,"context_line":"            cmd.extend([\u0027-f\u0027, src_format])  # prevent detection of format"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        cmd.extend([\u0027-O\u0027, out_format, source, dest])"},{"line_number":152,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_523880ec","line":149,"in_reply_to":"bff0334d_7bdb9c1a","updated":"2017-04-10 18:13:09.000000000","message":"Done","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"94f9ddbe0f0a8d12d3a7c06b65a60547801726b4","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        if src_format is not None:"},{"line_number":149,"context_line":"            cmd.extend([\u0027-f\u0027, src_format])  # prevent detection of format"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        cmd.extend([\u0027-O\u0027, out_format, source, dest])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    start_time \u003d timeutils.utcnow()"},{"line_number":154,"context_line":"    utils.execute(*cmd, run_as_root\u003drun_as_root)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_db03c872","line":151,"updated":"2017-04-07 14:52:10.000000000","message":"ditto","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b324ea3224ba000c942fd9bae01e6b93061ac1b9","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        if src_format is not None:"},{"line_number":149,"context_line":"            cmd.extend([\u0027-f\u0027, src_format])  # prevent detection of format"},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"        cmd.extend([\u0027-O\u0027, out_format, source, dest])"},{"line_number":152,"context_line":""},{"line_number":153,"context_line":"    start_time \u003d timeutils.utcnow()"},{"line_number":154,"context_line":"    utils.execute(*cmd, run_as_root\u003drun_as_root)"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_323dfcdc","line":151,"in_reply_to":"bff0334d_db03c872","updated":"2017-04-10 18:13:09.000000000","message":"Done","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"94f9ddbe0f0a8d12d3a7c06b65a60547801726b4","unresolved":false,"context_lines":[{"line_number":182,"context_line":"    LOG.info(msg, {\"sz\": fsz_mb, \"mbps\": mbps})"},{"line_number":183,"context_line":""},{"line_number":184,"context_line":""},{"line_number":185,"context_line":"def convert_image(source, dest, out_format, src_format\u003dNone,"},{"line_number":186,"context_line":"                  run_as_root\u003dTrue, throttle\u003dNone):"},{"line_number":187,"context_line":"    if not throttle:"},{"line_number":188,"context_line":"        throttle \u003d throttling.Throttle.get_default()"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_bbdb64eb","line":185,"updated":"2017-04-07 14:52:10.000000000","message":"nit: OK, I\u0027ve checked and we have no call that pass run_as_root as a positional parameter, they all pass it as a keyword parameter.  I\u0027m sure you checked it, but mentioning here for other reviewers.","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"94f9ddbe0f0a8d12d3a7c06b65a60547801726b4","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    if not throttle:"},{"line_number":188,"context_line":"        throttle \u003d throttling.Throttle.get_default()"},{"line_number":189,"context_line":"    with throttle.subcommand(source, dest) as throttle_cmd:"},{"line_number":190,"context_line":"        _convert_image(list(throttle_cmd[\u0027prefix\u0027]),"},{"line_number":191,"context_line":"                       source, dest,"},{"line_number":192,"context_line":"                       out_format,"},{"line_number":193,"context_line":"                       src_format\u003dsrc_format,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_3b64f421","line":190,"updated":"2017-04-07 14:52:10.000000000","message":"-1: If we are going to convert it to a list here, why don\u0027t we do it directly in _convert_image and avoid the double list creation?   We create a list here and then we create another one when we do the `prefix + [` there...\n\nIt also seems like we are moving an internal requirement from _convert_image (requiring a list so it can use +) up here, which I believe it\u0027s not necessary.","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"b324ea3224ba000c942fd9bae01e6b93061ac1b9","unresolved":false,"context_lines":[{"line_number":187,"context_line":"    if not throttle:"},{"line_number":188,"context_line":"        throttle \u003d throttling.Throttle.get_default()"},{"line_number":189,"context_line":"    with throttle.subcommand(source, dest) as throttle_cmd:"},{"line_number":190,"context_line":"        _convert_image(list(throttle_cmd[\u0027prefix\u0027]),"},{"line_number":191,"context_line":"                       source, dest,"},{"line_number":192,"context_line":"                       out_format,"},{"line_number":193,"context_line":"                       src_format\u003dsrc_format,"}],"source_content_type":"text/x-python","patch_set":4,"id":"bff0334d_357286ae","line":190,"in_reply_to":"bff0334d_3b64f421","updated":"2017-04-10 18:13:09.000000000","message":"Done","commit_id":"355cb91474266a7ecc6bd7576205d9e4101c0137"}],"cinder/tests/unit/test_image_utils.py":[{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"652f5fc3120667bde36e3f7d65e2e1f0a5e865fa","unresolved":false,"context_lines":[{"line_number":656,"context_line":"                                              run_as_root\u003drun_as_root)"},{"line_number":657,"context_line":""},{"line_number":658,"context_line":""},{"line_number":659,"context_line":"class FakeImageService(object):"},{"line_number":660,"context_line":"    def __init__(self, db_driver\u003dNone, image_service\u003dNone):"},{"line_number":661,"context_line":"        self.temp_images \u003d None"},{"line_number":662,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_9e750bce","line":659,"updated":"2017-05-10 16:13:44.000000000","message":"nit: We could use cinder.tests.unit.image.fake:FakeImageService, it would be cleaner but it would require changing the image_id used in the tests to use a real one instead of a sentinel.","commit_id":"b1ebfa4f5dcdef7f979f5ddf3209f551429dce47"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"652f5fc3120667bde36e3f7d65e2e1f0a5e865fa","unresolved":false,"context_lines":[{"line_number":765,"context_line":"                                             src_format\u003d\u0027raw\u0027)"},{"line_number":766,"context_line":""},{"line_number":767,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.check_available_space\u0027,"},{"line_number":768,"context_line":"                new\u003dmock.Mock())"},{"line_number":769,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.is_xenserver_format\u0027,"},{"line_number":770,"context_line":"                new\u003dmock.Mock(return_value\u003dFalse))"},{"line_number":771,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.convert_image\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_9e0ceb41","line":768,"range":{"start_line":768,"start_character":16,"end_line":768,"end_character":20},"updated":"2017-05-10 16:13:44.000000000","message":"nit: no need to specify new\u003d, we can do:\n    \n @mock.patch(\u0027cinder.image.image_utils.check_available_space\u0027, mock.Mock())","commit_id":"b1ebfa4f5dcdef7f979f5ddf3209f551429dce47"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"652f5fc3120667bde36e3f7d65e2e1f0a5e865fa","unresolved":false,"context_lines":[{"line_number":767,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.check_available_space\u0027,"},{"line_number":768,"context_line":"                new\u003dmock.Mock())"},{"line_number":769,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.is_xenserver_format\u0027,"},{"line_number":770,"context_line":"                new\u003dmock.Mock(return_value\u003dFalse))"},{"line_number":771,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.convert_image\u0027)"},{"line_number":772,"context_line":"    @mock.patch(\u0027cinder.image.image_utils.volume_utils.copy_volume\u0027)"},{"line_number":773,"context_line":"    @mock.patch("}],"source_content_type":"text/x-python","patch_set":7,"id":"3f044301_7e059f13","line":770,"range":{"start_line":770,"start_character":16,"end_line":770,"end_character":20},"updated":"2017-05-10 16:13:44.000000000","message":"ditto","commit_id":"b1ebfa4f5dcdef7f979f5ddf3209f551429dce47"}]}
