)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"d8c812f6c58eb55537caf72ee38932d337fb704e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"2ec77546_1d6d402a","updated":"2026-02-17 14:03:53.000000000","message":"Removed and will open a new PR for this change","commit_id":"02b0853c493f2d03fe89fff76e3426a36a94e3f1"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"564c3f013bbc77bb48a0104ca3dbb1de57e39b40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3ab74680_236f81bb","updated":"2026-05-27 08:42:42.000000000","message":"Any news regarding this? Anything missing?","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0e8492da9a053913e72a1e289fdc0c04d1861b8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"08639a46_e3412ffb","updated":"2026-07-30 12:53:06.000000000","message":"Hi Daniel thanks for working on this. I was wondering what is the backend you were working this for? I saw that for the generic NFS the CI is passing, but it will be nice to have other remotefs cis passing as well.","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"feba5a71e110606db80a001aae1a493bd5583612","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"803c663b_676b776d","updated":"2026-03-20 14:59:47.000000000","message":"LGTM","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"6b748e4c33965c5a549e69cfb95846a1fb11bd9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"6de43fc7_9200c072","updated":"2026-03-14 07:39:53.000000000","message":"We just ran into the issue where Nova would error out if use_qcow2 is set to true in nova and cinder.\n\nThe initial blockdevice mapping from image creation will show format\u003draw but the cinder metadata for the volume will show format\u003dqcow2 so on resize nova attempts to reattach the volume as qcow2 and error horribly.\n\nSpent an hour detangling this and retroactively tag all files that are not QCOW2 on the disk storage as disk_format\u003draw","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"6e8b1decbcaaf7ea24cb90eaa194a5f2c3fc0f9d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"085410a2_939247bb","updated":"2026-03-09 20:08:33.000000000","message":"recheck","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"7e38beb8ff5418528253cbce3bfbfe9bfb5e8d9a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a7227fb1_26e86bf9","updated":"2026-03-09 08:13:29.000000000","message":"recheck","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"ab806835833f8f207fb2c3991dafe77e4dbfdf08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"727eca35_ce8273d5","in_reply_to":"08639a46_e3412ffb","updated":"2026-07-30 13:01:51.000000000","message":"This is specifically for the generic NFS driver which currently experiences a bug when `nfs_qcow2_volumes` is set to True.\n\nThe issue is that the volume is created as Raw and while the creation-process of an instance correctly creates the attachment information with type raw, any subsequent re/attaching of the volume will fail because Cinder starts to report it as Qcow2 and qemu crashes. This was discovered during a Resize operation that didnt touch the volume but crashed because qemu was expecting a qcow2 volume from cinder but got the original raw.","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"}],"cinder/volume/drivers/remotefs.py":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"52f885713ef7e55775ab3f1c9f3eaf3ee9742345","unresolved":true,"context_lines":[{"line_number":556,"context_line":"        if virt_size !\u003d volume.size:"},{"line_number":557,"context_line":"            raise exception.ImageUnacceptable("},{"line_number":558,"context_line":"                image_id\u003dimage_id,"},{"line_number":559,"context_line":"                reason\u003d_(\"Expected volume size was %(e)d \""},{"line_number":560,"context_line":"                         \"but size is now %(a)d\") % {\u0027e\u0027: volume.size,"},{"line_number":561,"context_line":"                                                     \u0027a\u0027: virt_size})"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def copy_volume_to_image(self,"},{"line_number":564,"context_line":"                             context: context.RequestContext,"}],"source_content_type":"text/x-python","patch_set":5,"id":"c5c843dc_073575b6","line":561,"range":{"start_line":559,"start_character":16,"end_line":561,"end_character":69},"updated":"2026-02-17 13:59:48.000000000","message":"Please split this into a separate commit","commit_id":"dbc9596378493bef9a8083ee11a4c265a64b3c4f"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"d8c812f6c58eb55537caf72ee38932d337fb704e","unresolved":false,"context_lines":[{"line_number":556,"context_line":"        if virt_size !\u003d volume.size:"},{"line_number":557,"context_line":"            raise exception.ImageUnacceptable("},{"line_number":558,"context_line":"                image_id\u003dimage_id,"},{"line_number":559,"context_line":"                reason\u003d_(\"Expected volume size was %(e)d \""},{"line_number":560,"context_line":"                         \"but size is now %(a)d\") % {\u0027e\u0027: volume.size,"},{"line_number":561,"context_line":"                                                     \u0027a\u0027: virt_size})"},{"line_number":562,"context_line":""},{"line_number":563,"context_line":"    def copy_volume_to_image(self,"},{"line_number":564,"context_line":"                             context: context.RequestContext,"}],"source_content_type":"text/x-python","patch_set":5,"id":"558fa6c7_5b381b67","line":561,"range":{"start_line":559,"start_character":16,"end_line":561,"end_character":69},"in_reply_to":"c5c843dc_073575b6","updated":"2026-02-17 14:03:53.000000000","message":"Acknowledged","commit_id":"dbc9596378493bef9a8083ee11a4c265a64b3c4f"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"05f9f18b3796307124e3bd908bd9ec37cbf371ee","unresolved":true,"context_lines":[{"line_number":528,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        # NOTE (f0o): The Year is 2025 and we still limit ourselves to 79 char"},{"line_number":531,"context_line":"        pep8 \u003d self.configuration.volume_dd_blocksize"},{"line_number":532,"context_line":"        image_utils.fetch_to_volume_format(context,"},{"line_number":533,"context_line":"                                           image_service,"},{"line_number":534,"context_line":"                                           image_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dd2760e6_2708866c","line":531,"range":{"start_line":531,"start_character":8,"end_line":531,"end_character":12},"updated":"2026-02-24 00:06:18.000000000","message":"Can you add a proper variable name here?","commit_id":"e7b2d61980df4c834bb020c60eeb9d25965ddbe2"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"e07d3af88e8be3425b9206940d818f2ab16443b7","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        # NOTE (f0o): The Year is 2025 and we still limit ourselves to 79 char"},{"line_number":531,"context_line":"        pep8 \u003d self.configuration.volume_dd_blocksize"},{"line_number":532,"context_line":"        image_utils.fetch_to_volume_format(context,"},{"line_number":533,"context_line":"                                           image_service,"},{"line_number":534,"context_line":"                                           image_id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"56404da0_5fc17170","line":531,"range":{"start_line":531,"start_character":8,"end_line":531,"end_character":12},"in_reply_to":"dd2760e6_2708866c","updated":"2026-02-24 08:21:28.000000000","message":"Done","commit_id":"e7b2d61980df4c834bb020c60eeb9d25965ddbe2"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0e8492da9a053913e72a1e289fdc0c04d1861b8","unresolved":true,"context_lines":[{"line_number":527,"context_line":"                             disable_sparse: bool \u003d False) -\u003e None:"},{"line_number":528,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        # NOTE (f0o): The Year is 2025 and we still limit ourselves to 79 char"},{"line_number":531,"context_line":"        volume_dd_blocksize \u003d self.configuration.volume_dd_blocksize"},{"line_number":532,"context_line":"        image_utils.fetch_to_volume_format(context,"},{"line_number":533,"context_line":"                                           image_service,"}],"source_content_type":"text/x-python","patch_set":8,"id":"10294995_e8d2f7db","line":530,"range":{"start_line":530,"start_character":8,"end_line":530,"end_character":78},"updated":"2026-07-30 12:53:06.000000000","message":"Can you remove this comment? It doesn\u0027t add any value to this context.","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"ab806835833f8f207fb2c3991dafe77e4dbfdf08","unresolved":false,"context_lines":[{"line_number":527,"context_line":"                             disable_sparse: bool \u003d False) -\u003e None:"},{"line_number":528,"context_line":"        \"\"\"Fetch the image from image_service and write it to the volume.\"\"\""},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"        # NOTE (f0o): The Year is 2025 and we still limit ourselves to 79 char"},{"line_number":531,"context_line":"        volume_dd_blocksize \u003d self.configuration.volume_dd_blocksize"},{"line_number":532,"context_line":"        image_utils.fetch_to_volume_format(context,"},{"line_number":533,"context_line":"                                           image_service,"}],"source_content_type":"text/x-python","patch_set":8,"id":"53458f05_8d6a638a","line":530,"range":{"start_line":530,"start_character":8,"end_line":530,"end_character":78},"in_reply_to":"10294995_e8d2f7db","updated":"2026-07-30 13:01:51.000000000","message":"Acknowledged","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"d0e8492da9a053913e72a1e289fdc0c04d1861b8","unresolved":true,"context_lines":[{"line_number":546,"context_line":"        # thus the initial \u0027size\u0027 parameter is not honored"},{"line_number":547,"context_line":"        # this sets the size to the one asked in the first place by the user"},{"line_number":548,"context_line":"        # and then verify the final virtual size"},{"line_number":549,"context_line":"        # NOTE (f0o): This seems to be necessary for any format, not just raw."},{"line_number":550,"context_line":"        image_utils.resize_image(self.local_path(volume), volume.size,"},{"line_number":551,"context_line":"                                 run_as_root\u003dself._execute_as_root)"},{"line_number":552,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"58294b6d_19573ab0","line":549,"range":{"start_line":549,"start_character":22,"end_line":549,"end_character":48},"updated":"2026-07-30 12:53:06.000000000","message":"If you choose to keep this comment, can you also confirm that this is actually necessary or not? Since you are adding a comment it will help developers in the future.","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"},{"author":{"_account_id":27316,"name":"Daniel Preussker","email":"openstack@devilcode.org","username":"f0o"},"change_message_id":"ab806835833f8f207fb2c3991dafe77e4dbfdf08","unresolved":true,"context_lines":[{"line_number":546,"context_line":"        # thus the initial \u0027size\u0027 parameter is not honored"},{"line_number":547,"context_line":"        # this sets the size to the one asked in the first place by the user"},{"line_number":548,"context_line":"        # and then verify the final virtual size"},{"line_number":549,"context_line":"        # NOTE (f0o): This seems to be necessary for any format, not just raw."},{"line_number":550,"context_line":"        image_utils.resize_image(self.local_path(volume), volume.size,"},{"line_number":551,"context_line":"                                 run_as_root\u003dself._execute_as_root)"},{"line_number":552,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"0eb5bf8a_ae148f62","line":549,"range":{"start_line":549,"start_character":22,"end_line":549,"end_character":48},"in_reply_to":"58294b6d_19573ab0","updated":"2026-07-30 13:01:51.000000000","message":"The note implies that it is just necessary due to Raw conversion but it is actually always required, as the fetch_to_volume_format function does not resize itself.\nI left that comment in to clarify that. I can reword it or we just remove both comments?","commit_id":"741cd662c770afad64d863ebbec3aa1722561c76"}]}
