)]}'
{"nova/virt/images.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d1192213cef156e8787f8dccc64d1e9898442f0","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        cmd \u003d (\u0027env\u0027, \u0027LC_ALL\u003dC\u0027, \u0027LANG\u003dC\u0027, \u0027qemu-img\u0027, \u0027info\u0027)"},{"line_number":61,"context_line":"        if force_shared:"},{"line_number":62,"context_line":"            cmd \u003d cmd + (\u0027--force-shared\u0027, )"},{"line_number":63,"context_line":"        cmd \u003d cmd + (path, )"},{"line_number":64,"context_line":"        if format is not None:"},{"line_number":65,"context_line":"            cmd \u003d cmd + (\u0027-f\u0027, format)"},{"line_number":66,"context_line":"        out, err \u003d utils.execute(*cmd, prlimit\u003dQEMU_IMG_LIMITS)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_466cd135","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":28},"updated":"2017-09-20 16:54:54.000000000","message":"This is a bit weird. The path doesn\u0027t have to come last, as noted with the format check below.","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"},{"author":{"_account_id":935,"name":"James Page","email":"ringo.page@gmail.com","username":"james-page"},"change_message_id":"81b8149d8cc578917127c961531ecc2c07412aae","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        cmd \u003d (\u0027env\u0027, \u0027LC_ALL\u003dC\u0027, \u0027LANG\u003dC\u0027, \u0027qemu-img\u0027, \u0027info\u0027)"},{"line_number":61,"context_line":"        if force_shared:"},{"line_number":62,"context_line":"            cmd \u003d cmd + (\u0027--force-shared\u0027, )"},{"line_number":63,"context_line":"        cmd \u003d cmd + (path, )"},{"line_number":64,"context_line":"        if format is not None:"},{"line_number":65,"context_line":"            cmd \u003d cmd + (\u0027-f\u0027, format)"},{"line_number":66,"context_line":"        out, err \u003d utils.execute(*cmd, prlimit\u003dQEMU_IMG_LIMITS)"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_c40e7ae4","line":63,"range":{"start_line":63,"start_character":8,"end_line":63,"end_character":28},"in_reply_to":"bf57530f_466cd135","updated":"2017-09-20 17:11:06.000000000","message":"Agreed; reworked in v2.","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d1192213cef156e8787f8dccc64d1e9898442f0","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    fetch(context, image_href, path_tmp)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    with fileutils.remove_path_on_error(path_tmp):"},{"line_number":140,"context_line":"        data \u003d qemu_img_info(path_tmp)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        fmt \u003d data.file_format"},{"line_number":143,"context_line":"        if fmt is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_0676d907","line":140,"range":{"start_line":140,"start_character":15,"end_line":140,"end_character":28},"updated":"2017-09-20 16:54:54.000000000","message":"You don\u0027t need to also handle it here?","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"},{"author":{"_account_id":935,"name":"James Page","email":"ringo.page@gmail.com","username":"james-page"},"change_message_id":"81b8149d8cc578917127c961531ecc2c07412aae","unresolved":false,"context_lines":[{"line_number":137,"context_line":"    fetch(context, image_href, path_tmp)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"    with fileutils.remove_path_on_error(path_tmp):"},{"line_number":140,"context_line":"        data \u003d qemu_img_info(path_tmp)"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"        fmt \u003d data.file_format"},{"line_number":143,"context_line":"        if fmt is None:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_64cc6e89","line":140,"range":{"start_line":140,"start_character":15,"end_line":140,"end_character":28},"in_reply_to":"bf57530f_0676d907","updated":"2017-09-20 17:11:06.000000000","message":"I don\u0027t think fetch_to_raw needs to disable the write lock; the image has just been retrieved to disk and is now being converted, so nothing else should have the write lock at this point in time.","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d1192213cef156e8787f8dccc64d1e9898442f0","unresolved":false,"context_lines":[{"line_number":588,"context_line":"                                          MIN_QEMU_VIRTLOGD)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def _is_force_share_available(self):"},{"line_number":591,"context_line":"        return self._host.has_min_version(hv_ver\u003dMIN_QEMU_FORCE_SHARE)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    def _handle_live_migration_post_copy(self, migration_flags):"},{"line_number":594,"context_line":"        if CONF.libvirt.live_migration_permit_post_copy:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_c678c1f9","line":591,"range":{"start_line":591,"start_character":8,"end_line":591,"end_character":70},"updated":"2017-09-20 16:54:54.000000000","message":"Could we just set this as a singleton variable on self, so if it\u0027s not set, we look it up, but then don\u0027t have to for the duration of the driver?","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"},{"author":{"_account_id":935,"name":"James Page","email":"ringo.page@gmail.com","username":"james-page"},"change_message_id":"81b8149d8cc578917127c961531ecc2c07412aae","unresolved":false,"context_lines":[{"line_number":588,"context_line":"                                          MIN_QEMU_VIRTLOGD)"},{"line_number":589,"context_line":""},{"line_number":590,"context_line":"    def _is_force_share_available(self):"},{"line_number":591,"context_line":"        return self._host.has_min_version(hv_ver\u003dMIN_QEMU_FORCE_SHARE)"},{"line_number":592,"context_line":""},{"line_number":593,"context_line":"    def _handle_live_migration_post_copy(self, migration_flags):"},{"line_number":594,"context_line":"        if CONF.libvirt.live_migration_permit_post_copy:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_a4af0693","line":591,"range":{"start_line":591,"start_character":8,"end_line":591,"end_character":70},"in_reply_to":"bf57530f_c678c1f9","updated":"2017-09-20 17:11:06.000000000","message":"Done","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5d1192213cef156e8787f8dccc64d1e9898442f0","unresolved":false,"context_lines":[{"line_number":7238,"context_line":"            if driver_type in (\"qcow2\", \"ploop\"):"},{"line_number":7239,"context_line":"                backing_file \u003d libvirt_utils.get_disk_backing_file("},{"line_number":7240,"context_line":"                    path,"},{"line_number":7241,"context_line":"                    force_share\u003dself._is_force_share_available()"},{"line_number":7242,"context_line":"                )"},{"line_number":7243,"context_line":"                virt_size \u003d disk_api.get_disk_size("},{"line_number":7244,"context_line":"                    path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_a6182dd3","line":7241,"range":{"start_line":7241,"start_character":32,"end_line":7241,"end_character":64},"updated":"2017-09-20 16:54:54.000000000","message":"Let\u0027s do this lookup once outside of the loop.","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"},{"author":{"_account_id":935,"name":"James Page","email":"ringo.page@gmail.com","username":"james-page"},"change_message_id":"81b8149d8cc578917127c961531ecc2c07412aae","unresolved":false,"context_lines":[{"line_number":7238,"context_line":"            if driver_type in (\"qcow2\", \"ploop\"):"},{"line_number":7239,"context_line":"                backing_file \u003d libvirt_utils.get_disk_backing_file("},{"line_number":7240,"context_line":"                    path,"},{"line_number":7241,"context_line":"                    force_share\u003dself._is_force_share_available()"},{"line_number":7242,"context_line":"                )"},{"line_number":7243,"context_line":"                virt_size \u003d disk_api.get_disk_size("},{"line_number":7244,"context_line":"                    path,"}],"source_content_type":"text/x-python","patch_set":1,"id":"bf57530f_84940246","line":7241,"range":{"start_line":7241,"start_character":32,"end_line":7241,"end_character":64},"in_reply_to":"bf57530f_a6182dd3","updated":"2017-09-20 17:11:06.000000000","message":"Done","commit_id":"d6f47977e3eab4bbf26566b368d42f93f74d3aff"}]}
