)]}'
{".zuul.yaml":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"e4a50e9f8e0cca8fb239afdf4b3ca3956880fd91","unresolved":true,"context_lines":[{"line_number":506,"context_line":"    # Exclude this test because stable/2026.1 does not yet include"},{"line_number":507,"context_line":"    # the Cinder fix required by the test."},{"line_number":508,"context_line":"    vars:"},{"line_number":509,"context_line":"      tempest_exclude_regex: \u0027test_backup_restore_sparse_encrypted_volume\u0027"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"- job:"},{"line_number":512,"context_line":"    name: cinder-tempest-plugin-basic-2025-2"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7fcdaa34_7c1fb3c3","line":509,"updated":"2026-09-10 13:07:50.000000000","message":"Uhm, I\u0027m not sure this is the proper way to skip this. Maybe we can just wait until the fix is backported on all the relevant branches in cinder.","commit_id":"af9e4f8664ae8a447d84ba9971a7274bfca78c81"}],"/COMMIT_MSG":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"4f0742c352e349807b258974eff17f36ef64c7a0","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     lkuchlan \u003clkuchlan@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-08-27 14:00:00 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add coverage for Ceph backup/restore of sparse encrypted volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The test creates a LUKS volume, lays down an ext4 filesystem with"},{"line_number":10,"context_line":"data so the backing RBD image is genuinely sparse, backs it up,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"bafe4cb3_26e3c379","line":7,"range":{"start_line":7,"start_character":17,"end_line":7,"end_character":36},"updated":"2026-08-31 18:27:11.000000000","message":"This test doesn\u0027t contain anything Ceph-specific","commit_id":"2493d08af2bd1afd8a74f96f28b88fad6fefe04f"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"8f98e78edbcd61e1a923ef68c0b54f50d66a0a0b","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     lkuchlan \u003clkuchlan@redhat.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2026-08-27 14:00:00 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add coverage for Ceph backup/restore of sparse encrypted volume"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The test creates a LUKS volume, lays down an ext4 filesystem with"},{"line_number":10,"context_line":"data so the backing RBD image is genuinely sparse, backs it up,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"485a0484_f48b337e","line":7,"range":{"start_line":7,"start_character":17,"end_line":7,"end_character":36},"in_reply_to":"bafe4cb3_26e3c379","updated":"2026-09-01 08:11:33.000000000","message":"Done","commit_id":"2493d08af2bd1afd8a74f96f28b88fad6fefe04f"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"133d7016b088133c01d31e7816f08559299cb3bc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9c9b40a0_85f489db","updated":"2026-08-25 13:31:28.000000000","message":"recheck","commit_id":"635294e4672f1776c3bd3d9bd01c7fc08dd8cd04"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"bfc12566cccb5a2ff60739d86b5205e2f3599b1e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e55bd942_68237906","updated":"2026-08-25 14:43:07.000000000","message":"recheck dependent patch updated","commit_id":"635294e4672f1776c3bd3d9bd01c7fc08dd8cd04"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"aabd529155b6862989dbdccd285e3de8a6e1ecfe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"292da5d3_5166a079","updated":"2026-09-09 08:27:58.000000000","message":"recheck","commit_id":"e41506b915dda4208fcbf3fcb123f539e896d9e7"}],"cinder_tempest_plugin/scenario/test_volume_encrypted.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"80642a61aa24fa701649d4f9b74935267a035091","unresolved":true,"context_lines":[{"line_number":192,"context_line":"          filesystem with data, so the underlying RBD image is genuinely"},{"line_number":193,"context_line":"          sparse (interleaved zero and non-zero regions -- a LUKS volume"},{"line_number":194,"context_line":"          with a journal is the normal case)"},{"line_number":195,"context_line":"        * Detach the volume and create a backup of it (the deployment is"},{"line_number":196,"context_line":"          expected to use cinder.backup.drivers.ceph.CephBackupDriver)"},{"line_number":197,"context_line":"        * Restore the backup WITHOUT an existing target, so Cinder creates"},{"line_number":198,"context_line":"          a new volume (volume_is_new \u003d True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"cc80d05a_529c4ed3","line":195,"updated":"2026-08-24 09:11:48.000000000","message":"I don\u0027t think we can have an implicit dependency on a specific backend, not this way anyway. Maybe a conditional on a variable (cinder_backup_supports_sparse?)","commit_id":"7a5589b4c1e06e8a0c8df103dfbeccf261340686"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"c55f5ecc0b7f499b91296582c39bff7d8c52f8bb","unresolved":true,"context_lines":[{"line_number":192,"context_line":"          filesystem with data, so the underlying RBD image is genuinely"},{"line_number":193,"context_line":"          sparse (interleaved zero and non-zero regions -- a LUKS volume"},{"line_number":194,"context_line":"          with a journal is the normal case)"},{"line_number":195,"context_line":"        * Detach the volume and create a backup of it (the deployment is"},{"line_number":196,"context_line":"          expected to use cinder.backup.drivers.ceph.CephBackupDriver)"},{"line_number":197,"context_line":"        * Restore the backup WITHOUT an existing target, so Cinder creates"},{"line_number":198,"context_line":"          a new volume (volume_is_new \u003d True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d442cd97_006a8838","line":195,"in_reply_to":"cc80d05a_529c4ed3","updated":"2026-08-24 11:10:03.000000000","message":"Right, right. Maybe we can use the get-capabilities operation to check whether the backend supports this, instead of adding a new configuration parameter.","commit_id":"7a5589b4c1e06e8a0c8df103dfbeccf261340686"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"c4cd3903bc598a96335ac8e7eb09bc5c01f1b4be","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        backup \u003d self.create_backup(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        # Restore the backup without a target -\u003e Cinder creates a new volume"},{"line_number":240,"context_line":"        restore \u003d self.restore_backup(backup[\u0027id\u0027])"},{"line_number":241,"context_line":"        restored_volume \u003d self.volumes_client.show_volume("},{"line_number":242,"context_line":"            restore[\u0027volume_id\u0027])[\u0027volume\u0027]"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8a2f4708_4c924f3f","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":51},"updated":"2026-08-25 09:39:46.000000000","message":"This is the place where the tests are failing due to the following reason\n\nThe volume ID used to create the source volume (before backup) was tempest-scenario-type-luks-1598011299 which was an encrypted volume type\n\nid\u003d6d282ff5-cc6c-4377-b9c0-b9d7cb80820d, name\u003d\u0027tempest-scenario-type-luks-1598011299\u0027\n\nDuring restore we don\u0027t provide any volume type so it takes the default volume type that is unencrypted i.e. ceph\n\ndefault_volume_type \u003d ceph\n\nid\u003d17a3943c-1521-432a-bb92-5cd621b3abd3,name\u003d\u0027ceph\u0027\n\nHence we fail with the following error\n\nAug 24 08:47:02.281349 np314868711ef84 cinder-backup[109400]: ERROR cinder.backup.manager cinder.exception.EncryptedBackupOperationFailed: The source volume type \u00276d282ff5-cc6c-4377-b9c0-b9d7cb80820d\u0027 is different than the destination volume type \u002717a3943c-1521-432a-bb92-5cd621b3abd3\u0027.\n\nIf we pass the source volume type during restore, this should make the test pass\n\nhere is the code that causes this to fail\n\nhttps://github.com/openstack/cinder/blob/b7831e8de01aa78801a53a534ef75b88680a8722/cinder/backup/driver.py#L235-L245","commit_id":"7a5589b4c1e06e8a0c8df103dfbeccf261340686"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"deb03dc4e5788845e8cff324c0647a98a8bc548f","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        backup \u003d self.create_backup(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        # Restore the backup without a target -\u003e Cinder creates a new volume"},{"line_number":240,"context_line":"        restore \u003d self.restore_backup(backup[\u0027id\u0027])"},{"line_number":241,"context_line":"        restored_volume \u003d self.volumes_client.show_volume("},{"line_number":242,"context_line":"            restore[\u0027volume_id\u0027])[\u0027volume\u0027]"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"b83fbd67_da58c34e","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":51},"in_reply_to":"1d8ab57b_bee7a0d6","updated":"2026-08-25 13:41:47.000000000","message":"It doesn\u0027t seem to have fixed the issue.\n\nThe source volume type \u002779d5a75a-f86c-40ef-841f-fcc0748c3b48\u0027 is different than the destination volume type \u00272c57905a-cfdc-4ac5-ab2e-4edf6aca2720\u0027.","commit_id":"7a5589b4c1e06e8a0c8df103dfbeccf261340686"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"86c3d9ec3f1f30930eae7a06353e101f1e950ee5","unresolved":false,"context_lines":[{"line_number":237,"context_line":"        backup \u003d self.create_backup(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        # Restore the backup without a target -\u003e Cinder creates a new volume"},{"line_number":240,"context_line":"        restore \u003d self.restore_backup(backup[\u0027id\u0027])"},{"line_number":241,"context_line":"        restored_volume \u003d self.volumes_client.show_volume("},{"line_number":242,"context_line":"            restore[\u0027volume_id\u0027])[\u0027volume\u0027]"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"1d8ab57b_bee7a0d6","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":51},"in_reply_to":"36b3b367_2576a80e","updated":"2026-08-25 12:11:40.000000000","message":"Done","commit_id":"7a5589b4c1e06e8a0c8df103dfbeccf261340686"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"610fbccbeb09cc8c3885b59776996ac39ca06909","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        backup \u003d self.create_backup(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        # Restore the backup without a target -\u003e Cinder creates a new volume"},{"line_number":240,"context_line":"        restore \u003d self.restore_backup(backup[\u0027id\u0027])"},{"line_number":241,"context_line":"        restored_volume \u003d self.volumes_client.show_volume("},{"line_number":242,"context_line":"            restore[\u0027volume_id\u0027])[\u0027volume\u0027]"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"36b3b367_2576a80e","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":51},"in_reply_to":"8a2f4708_4c924f3f","updated":"2026-08-25 10:57:12.000000000","message":"So the backup restore API doesn\u0027t accept volume type so this looks like a bug when restoring we don\u0027t set the right type but we\u0027ve 2 options\n1. add depends-on the patch and see if it fixes the issue https://review.opendev.org/c/openstack/cinder/+/1002251\n2. Use the create API to restore the backup which accepts a volume type","commit_id":"7a5589b4c1e06e8a0c8df103dfbeccf261340686"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"c1e2c15d46dc047d6a842e93f254e0aee31ae804","unresolved":true,"context_lines":[{"line_number":225,"context_line":"            server_ip, filename\u003dfilename, dev_name\u003ddev_name,"},{"line_number":226,"context_line":"            private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Detach so the volume is \u0027available\u0027 for the backup"},{"line_number":229,"context_line":"        self.servers_client.detach_volume(server[\u0027id\u0027], volume[\u0027id\u0027])"},{"line_number":230,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":231,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"0dc28b17_043b58a3","line":228,"range":{"start_line":228,"start_character":0,"end_line":228,"end_character":2},"updated":"2026-08-31 18:26:42.000000000","message":"These comments all duplicate the block comment for the method (and the code immediately after the comment) -- probably don\u0027t need to duplicate this info.","commit_id":"2493d08af2bd1afd8a74f96f28b88fad6fefe04f"},{"author":{"_account_id":19262,"name":"Liron Kuchlani","email":"lkuchlan@redhat.com","username":"lkuchlan"},"change_message_id":"8f98e78edbcd61e1a923ef68c0b54f50d66a0a0b","unresolved":false,"context_lines":[{"line_number":225,"context_line":"            server_ip, filename\u003dfilename, dev_name\u003ddev_name,"},{"line_number":226,"context_line":"            private_key\u003dkeypair[\u0027private_key\u0027], server\u003dserver)"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        # Detach so the volume is \u0027available\u0027 for the backup"},{"line_number":229,"context_line":"        self.servers_client.detach_volume(server[\u0027id\u0027], volume[\u0027id\u0027])"},{"line_number":230,"context_line":"        waiters.wait_for_volume_resource_status("},{"line_number":231,"context_line":"            self.volumes_client, volume[\u0027id\u0027], \u0027available\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3d9a03a1_b56e4994","line":228,"range":{"start_line":228,"start_character":0,"end_line":228,"end_character":2},"in_reply_to":"0dc28b17_043b58a3","updated":"2026-09-01 08:11:33.000000000","message":"Done","commit_id":"2493d08af2bd1afd8a74f96f28b88fad6fefe04f"}]}
