)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76ba1da752b559e03f015a2a59bb424c6efb4eaf","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Fix wrong disk size for sparse flat files"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The libvirt driver creates flat disks as sparse by default. However,"},{"line_number":10,"context_line":"it always returns over_committed_disk_size\u003d0 for flat disks"},{"line_number":11,"context_line":"in _get_instance_disk_info(). This incorrect data ends up being reported"},{"line_number":12,"context_line":"to the scheduler in the libvirt driver\u0027s get_available_resource() via"},{"line_number":13,"context_line":"_get_disk_over_committed_size_total(). _get_instance_disk_info() should use"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"5a74a57a_14d544b8","line":10,"updated":"2016-11-24 12:16:35.000000000","message":"The issue is not really clear for me, not sure where we have a bug by returning over_committed_disk_size\u003d0 for a raw file.","commit_id":"b355cf025fa5fa8dfad9ae9f4480dc9de296ac91"}],"nova/tests/unit/virt/libvirt/fake_libvirt_utils.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7cdff9a303fc6513b380ca89170c730cf8c8600c","unresolved":false,"context_lines":[{"line_number":42,"context_line":"    return 0"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"def get_real_disk_size(path, format\u003dNone):"},{"line_number":46,"context_line":"    return 0"},{"line_number":47,"context_line":""},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"def get_disk_backing_file(path, basename\u003dTrue, format\u003dNone):"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff0f0b1f_8747624c","line":46,"range":{"start_line":45,"start_character":0,"end_line":46,"end_character":12},"updated":"2017-05-18 15:36:50.000000000","message":"Not called?","commit_id":"f73627f48546ac895d42ee71fa5df887441dd454"}],"nova/virt/disk/api.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d22197bc422362245560d45a8f442813a8913e95","unresolved":false,"context_lines":[{"line_number":152,"context_line":"    \"\"\"Get the disk size of a disk image"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    :param path: Path to the disk image"},{"line_number":155,"context_line":"    :returns: Actual size (in bytes) of the given disk image takes up in host"},{"line_number":156,"context_line":"    \"\"\""},{"line_number":157,"context_line":"    return images.qemu_img_info(path).disk_size"},{"line_number":158,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"ff0f0b1f_995b5e86","line":155,"updated":"2017-05-18 06:07:25.000000000","message":"s/of/that/","commit_id":"be4f1ac4d6a31295acbc5c882eee1941fc229b8c"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7cdff9a303fc6513b380ca89170c730cf8c8600c","unresolved":false,"context_lines":[{"line_number":148,"context_line":"    return images.qemu_img_info(path).virtual_size"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":""},{"line_number":151,"context_line":"def get_real_disk_size(path):"},{"line_number":152,"context_line":"    \"\"\"Get the disk size of a disk image"},{"line_number":153,"context_line":""},{"line_number":154,"context_line":"    :param path: Path to the disk image"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff0f0b1f_67e9ee18","line":151,"updated":"2017-05-18 15:36:50.000000000","message":"bikeshed: get_allocated_disk_size?","commit_id":"f73627f48546ac895d42ee71fa5df887441dd454"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76ba1da752b559e03f015a2a59bb424c6efb4eaf","unresolved":false,"context_lines":[{"line_number":6887,"context_line":"                            fp \u003d os.path.join(dirpath, f)"},{"line_number":6888,"context_line":"                            dk_size +\u003d os.path.getsize(fp)"},{"line_number":6889,"context_line":"                else:"},{"line_number":6890,"context_line":"                    dk_size \u003d disk_api.get_real_disk_size(path)"},{"line_number":6891,"context_line":"            elif disk_type \u003d\u003d \u0027block\u0027 and block_device_info:"},{"line_number":6892,"context_line":"                dk_size \u003d lvm.get_volume_size(path)"},{"line_number":6893,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_54fedc38","line":6890,"updated":"2016-11-24 12:16:35.000000000","message":"Not sure why you change this, now the size returned by a raw file will not be the real size seen by the OS.","commit_id":"b355cf025fa5fa8dfad9ae9f4480dc9de296ac91"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76ba1da752b559e03f015a2a59bb424c6efb4eaf","unresolved":false,"context_lines":[{"line_number":6896,"context_line":"                          {\u0027path\u0027: path, \u0027target\u0027: target})"},{"line_number":6897,"context_line":"                continue"},{"line_number":6898,"context_line":""},{"line_number":6899,"context_line":"            driver_type \u003d driver_nodes[cnt].get(\u0027type\u0027)"},{"line_number":6900,"context_line":""},{"line_number":6901,"context_line":"            if driver_type in (\"qcow2\", \"ploop\"):"},{"line_number":6902,"context_line":"                backing_file \u003d libvirt_utils.get_disk_backing_file(path)"}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_948f94cb","line":6899,"updated":"2016-11-24 12:16:35.000000000","message":"This refactor seems needed, It would be better to see it on a different patch.","commit_id":"b355cf025fa5fa8dfad9ae9f4480dc9de296ac91"},{"author":{"_account_id":7730,"name":"Sahid Orentino Ferdjaoui","email":"sahid.ferdjaoui@industrialdiscipline.com","username":"sahid"},"change_message_id":"76ba1da752b559e03f015a2a59bb424c6efb4eaf","unresolved":false,"context_lines":[{"line_number":6905,"context_line":"            else:"},{"line_number":6906,"context_line":"                if disk_type \u003d\u003d \u0027file\u0027:"},{"line_number":6907,"context_line":"                    backing_file \u003d \"\""},{"line_number":6908,"context_line":"                    virt_size \u003d int(os.path.getsize(path))"},{"line_number":6909,"context_line":"                    over_commit_size \u003d virt_size - dk_size"},{"line_number":6910,"context_line":"                else:"},{"line_number":6911,"context_line":"                    backing_file \u003d \"\""}],"source_content_type":"text/x-python","patch_set":8,"id":"5a74a57a_74303802","line":6908,"updated":"2016-11-24 12:16:35.000000000","message":"We have a method to return the size seen by the guest. it uses qemu and I think we should use it here.\n\n\nSo with your change:\n\n  virt_size: 1GIB\n  dk_size: 200MiB (e.g: used by the guest O/S)\n  over_commit_size: 800MiB\n\nThe over_commit_size is false since the size seen by the operating system for that file is well 1GiB, the over_commit_size should be 0.","commit_id":"b355cf025fa5fa8dfad9ae9f4480dc9de296ac91"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7cdff9a303fc6513b380ca89170c730cf8c8600c","unresolved":false,"context_lines":[{"line_number":7057,"context_line":"                    for dirpath, dirnames, filenames in os.walk(path):"},{"line_number":7058,"context_line":"                        for f in filenames:"},{"line_number":7059,"context_line":"                            fp \u003d os.path.join(dirpath, f)"},{"line_number":7060,"context_line":"                            dk_size +\u003d os.path.getsize(fp)"},{"line_number":7061,"context_line":"                else:"},{"line_number":7062,"context_line":"                    dk_size \u003d disk_api.get_real_disk_size(path)"},{"line_number":7063,"context_line":"            elif disk_type \u003d\u003d \u0027block\u0027 and block_device_info:"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff0f0b1f_045fd0e2","line":7060,"updated":"2017-05-18 15:36:50.000000000","message":"I wonder if this is also relevant to ploop? A question for another day.","commit_id":"f73627f48546ac895d42ee71fa5df887441dd454"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7cdff9a303fc6513b380ca89170c730cf8c8600c","unresolved":false,"context_lines":[{"line_number":7068,"context_line":"                          {\u0027path\u0027: path, \u0027target\u0027: target})"},{"line_number":7069,"context_line":"                continue"},{"line_number":7070,"context_line":""},{"line_number":7071,"context_line":"            if driver_type in (\u0027qcow2\u0027, \u0027ploop\u0027):"},{"line_number":7072,"context_line":"                backing_file \u003d libvirt_utils.get_disk_backing_file(path)"},{"line_number":7073,"context_line":"                virt_size \u003d disk_api.get_disk_size(path)"},{"line_number":7074,"context_line":"                over_commit_size \u003d int(virt_size) - dk_size"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff0f0b1f_84bc0006","line":7071,"updated":"2017-05-18 15:36:50.000000000","message":"nit: unrelated change. I prefer it though, so...","commit_id":"f73627f48546ac895d42ee71fa5df887441dd454"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7cdff9a303fc6513b380ca89170c730cf8c8600c","unresolved":false,"context_lines":[{"line_number":7073,"context_line":"                virt_size \u003d disk_api.get_disk_size(path)"},{"line_number":7074,"context_line":"                over_commit_size \u003d int(virt_size) - dk_size"},{"line_number":7075,"context_line":"            else:"},{"line_number":7076,"context_line":"                if disk_type \u003d\u003d \u0027file\u0027:"},{"line_number":7077,"context_line":"                    backing_file \u003d \"\""},{"line_number":7078,"context_line":"                    virt_size \u003d int(os.path.getsize(path))"},{"line_number":7079,"context_line":"                    over_commit_size \u003d virt_size - dk_size"},{"line_number":7080,"context_line":"                else:"},{"line_number":7081,"context_line":"                    backing_file \u003d \"\""},{"line_number":7082,"context_line":"                    virt_size \u003d dk_size"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff0f0b1f_249f7404","line":7079,"range":{"start_line":7076,"start_character":0,"end_line":7079,"end_character":58},"updated":"2017-05-18 15:36:50.000000000","message":"nit: Personally I\u0027d have set alloc_size and virt_size above (and renamed dk_size to alloc_size). This is done, though. If you respin for any reason?","commit_id":"f73627f48546ac895d42ee71fa5df887441dd454"},{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"ed0b5c1f52a152b7d56fe1f647271d7124caecdb","unresolved":false,"context_lines":[{"line_number":7059,"context_line":"                            fp \u003d os.path.join(dirpath, f)"},{"line_number":7060,"context_line":"                            dk_size +\u003d os.path.getsize(fp)"},{"line_number":7061,"context_line":"                else:"},{"line_number":7062,"context_line":"                    dk_size \u003d disk_api.get_allocated_disk_size(path)"},{"line_number":7063,"context_line":"            elif disk_type \u003d\u003d \u0027block\u0027 and block_device_info:"},{"line_number":7064,"context_line":"                dk_size \u003d lvm.get_volume_size(path)"},{"line_number":7065,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":14,"id":"ff0f0b1f_c70f4fdf","line":7062,"updated":"2017-05-22 08:57:04.000000000","message":"TODO: Pretty sure there\u0027s enough context in this function to pass disk format explicitly here.\n\nFamous last words: I can\u0027t see immediately that this is a great security risk without.","commit_id":"f4bc59a3776b9ac0f78d2959426e38b149def184"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":9555,"name":"Matthew Booth","email":"mbooth@redhat.com","username":"MatthewBooth"},"change_message_id":"7cdff9a303fc6513b380ca89170c730cf8c8600c","unresolved":false,"context_lines":[{"line_number":194,"context_line":"    return int(size)"},{"line_number":195,"context_line":""},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"def get_real_disk_size(path, format\u003dNone):"},{"line_number":198,"context_line":"    \"\"\"Get the disk size of a disk image"},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    :param path: Path to the disk image"},{"line_number":201,"context_line":"    :returns: Actual size (in bytes) of the given disk image takes up in host"},{"line_number":202,"context_line":"    \"\"\""},{"line_number":203,"context_line":"    dk_size \u003d images.qemu_img_info(path, format).disk_size"},{"line_number":204,"context_line":"    return int(dk_size)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":""},{"line_number":207,"context_line":"def get_disk_backing_file(path, basename\u003dTrue, format\u003dNone):"}],"source_content_type":"text/x-python","patch_set":13,"id":"ff0f0b1f_2709b62b","line":204,"range":{"start_line":197,"start_character":0,"end_line":204,"end_character":23},"updated":"2017-05-18 15:36:50.000000000","message":"I don\u0027t think you call this anywhere, do you? You added to to disk.api instead. The format argument is definitely better, btw. Perhaps you could add it to the version in disk_api.","commit_id":"f73627f48546ac895d42ee71fa5df887441dd454"}]}
