)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"d841f7d9a7a76ac5fca463555ee8d15f91e0ac03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ebbadc92_74a26eed","updated":"2025-08-28 19:42:40.000000000","message":"recheck","commit_id":"b370b0d1dbf793b0c32de54e531bbb24cdf2ee11"},{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"3ff8773965cf916d791056537304c1eb8f5c2fe1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"ab9d4f4b_8fd4d80d","updated":"2025-08-28 15:40:56.000000000","message":"recheck grenade-skip-level-always tempest-integrated-storage-ubuntu-jammy intermittency","commit_id":"b370b0d1dbf793b0c32de54e531bbb24cdf2ee11"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"e95612dc52523e2d942c37416bc30dc6f1c38a5e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7da3c2d2_f0974a86","updated":"2025-11-21 15:56:03.000000000","message":"This looks like a good patch, but since it changes customer-facing behavior, I wonder if we should have release notes? \n\nOnly reason for the -1.  Will +1 once there\u0027s release notes or a reason why there won\u0027t be.","commit_id":"cb14b0d456496123dcfeb2bd7d4597fb221a892a"},{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"e9085f80e7b5838fd7d6ce3047b1c793d00ea322","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"83bc0b13_0d5e2325","in_reply_to":"7da3c2d2_f0974a86","updated":"2025-11-25 13:39:38.000000000","message":"Hi agalica,\n\nI agree with you, this should be noted in the release notes.\n\nI added it in the last patchset; let me know what you think.\n\nBy the way, thank you for reviewing this :)","commit_id":"cb14b0d456496123dcfeb2bd7d4597fb221a892a"},{"author":{"_account_id":36538,"name":"Harsh Ailani","display_name":"Harsh Ailani","email":"harsh.ailani@ibm.com","username":"harshailani"},"change_message_id":"f52c718bc619b632027ae2b5750da407b9979357","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"5b2f275a_3be7db5a","updated":"2025-12-19 09:50:56.000000000","message":"Code looks good. Good explanation in the commit message about this change and its requirement.","commit_id":"38ae9fa184a9d1f128a1536f0d0927fc391025a0"},{"author":{"_account_id":9236,"name":"Jon Bernard","email":"jobernar@redhat.com","username":"jbernard"},"change_message_id":"c4a0b4fd8363e2462b83cfbec1907d3283bea221","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0dca16b4_9bdb8751","updated":"2026-01-12 20:18:12.000000000","message":"Look okay to me.","commit_id":"38ae9fa184a9d1f128a1536f0d0927fc391025a0"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"00ec562964cffd5f8a851de4a8b5f492e736c3f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"11ae68cc_1d23dfa0","updated":"2025-12-02 06:49:00.000000000","message":"Release notes have been added, and I have no further comments.  LGTM.","commit_id":"38ae9fa184a9d1f128a1536f0d0927fc391025a0"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"93b7d5c13a80c44eada0470c206b394d6b1405d2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"73cded0a_3dae690d","updated":"2026-02-20 14:43:08.000000000","message":"Change lgtm , I just a question about handling incomplete encryption fields during backup \u0026 restore as I am unsure they can be ignored.","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"f7d343045668d5979fc6508a6ab41b280e6a4f2c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9fcc4207_b0e1719d","updated":"2026-01-28 15:12:14.000000000","message":"LGTM with the new python-ish changes.","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"},{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"465bd4a0db32ca6d84dda356abd66aadf620054b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"fd92d5a2_4f90f335","updated":"2026-01-23 16:36:08.000000000","message":"recheck tempest-slow-py3 timeout","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"},{"author":{"_account_id":28619,"name":"Dmitriy Rabotyagov","email":"noonedeadpunk@gmail.com","username":"noonedeadpunk"},"change_message_id":"cab279e84708c09e713bf2e50797f4f08a2e5264","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e54d0565_bbdedca5","updated":"2026-02-04 15:39:14.000000000","message":"this change makes total sense to me and implementation looks reasonable enough","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"}],"cinder/backup/driver.py":[{"author":{"_account_id":37888,"name":"Akshay Ranade","display_name":"Akshay Ranade","email":"akshay.ranade@ibm.com","username":"rakshay"},"change_message_id":"65d441c91570a610b84ab22c83c99ea4155fb624","unresolved":true,"context_lines":[{"line_number":256,"context_line":"                        self.context, dest_vol[\u0027volume_type_id\u0027]))"},{"line_number":257,"context_line":"                if src_volume_type_encryption and dst_volume_type_encryption:"},{"line_number":258,"context_line":"                    is_equal \u003d True"},{"line_number":259,"context_line":"                    for key in self.ENCRYPTION_FIELDS:"},{"line_number":260,"context_line":"                        if (src_volume_type_encryption.get(key)"},{"line_number":261,"context_line":"                                !\u003d dst_volume_type_encryption.get(key)):"},{"line_number":262,"context_line":"                            is_equal \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"d27a5967_df1931bc","line":259,"updated":"2026-01-23 10:28:06.000000000","message":"This \u0027for\u0027 block could have been written in more pythonic way, using all(), to improve readability and reduced the lines of code.\nRest all changes looks solid to me.","commit_id":"38ae9fa184a9d1f128a1536f0d0927fc391025a0"},{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"482b131592a319cd59e7686a9d8b0951fd882dd0","unresolved":false,"context_lines":[{"line_number":256,"context_line":"                        self.context, dest_vol[\u0027volume_type_id\u0027]))"},{"line_number":257,"context_line":"                if src_volume_type_encryption and dst_volume_type_encryption:"},{"line_number":258,"context_line":"                    is_equal \u003d True"},{"line_number":259,"context_line":"                    for key in self.ENCRYPTION_FIELDS:"},{"line_number":260,"context_line":"                        if (src_volume_type_encryption.get(key)"},{"line_number":261,"context_line":"                                !\u003d dst_volume_type_encryption.get(key)):"},{"line_number":262,"context_line":"                            is_equal \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"6dca7472_a85cd18f","line":259,"in_reply_to":"d27a5967_df1931bc","updated":"2026-01-23 12:38:19.000000000","message":"Thanks for the suggestion; I agree this is cleaner.\nUpdated in the latest patchset.","commit_id":"38ae9fa184a9d1f128a1536f0d0927fc391025a0"},{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"93b7d5c13a80c44eada0470c206b394d6b1405d2","unresolved":true,"context_lines":[{"line_number":104,"context_line":"                for key in self.ENCRYPTION_FIELDS:"},{"line_number":105,"context_line":"                    value \u003d volume_type_encryption.get(key)"},{"line_number":106,"context_line":"                    if not self._is_serializable(value):"},{"line_number":107,"context_line":"                        LOG.info(\"Unable to serialize field \u0027%s\u0027 - excluding \""},{"line_number":108,"context_line":"                                 \"from backup\", key)"},{"line_number":109,"context_line":"                        continue"},{"line_number":110,"context_line":"                    container[type_tag][\u0027volume_type_encryption\u0027][key] \u003d value"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"            LOG.debug(\"Completed fetching metadata type \u0027%s\u0027\", type_tag)"}],"source_content_type":"text/x-python","patch_set":5,"id":"28c7ccb9_8df8f7f7","line":109,"range":{"start_line":107,"start_character":0,"end_line":109,"end_character":32},"updated":"2026-02-20 14:43:08.000000000","message":"Is an arbitrary log info enough here? I wonder if the partial encryption information will suffice to get a working result when restoring from backup with this data?\nI suspect this depends on the exact field that is missing so that some fields can simply be ignored (log info is fine) but others (cipher?) might be a hard requirement for restore?","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"},{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"18e4a44cb52cbde19857278d1853eba267c5682b","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                for key in self.ENCRYPTION_FIELDS:"},{"line_number":105,"context_line":"                    value \u003d volume_type_encryption.get(key)"},{"line_number":106,"context_line":"                    if not self._is_serializable(value):"},{"line_number":107,"context_line":"                        LOG.info(\"Unable to serialize field \u0027%s\u0027 - excluding \""},{"line_number":108,"context_line":"                                 \"from backup\", key)"},{"line_number":109,"context_line":"                        continue"},{"line_number":110,"context_line":"                    container[type_tag][\u0027volume_type_encryption\u0027][key] \u003d value"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"            LOG.debug(\"Completed fetching metadata type \u0027%s\u0027\", type_tag)"}],"source_content_type":"text/x-python","patch_set":5,"id":"bcbbd3be_784d7cc6","line":109,"range":{"start_line":107,"start_character":0,"end_line":109,"end_character":32},"in_reply_to":"28c7ccb9_8df8f7f7","updated":"2026-04-02 19:53:51.000000000","message":"Hi Silvan,\n\nFirst of all, thank you for reviewing this change! — and sorry for taking too long to address it.\n\nUntil now I was following the same approach to checking the other fields of a volume, but, since these are cryptographic fields, you\u0027re right, all of these fields should be necessary (https://opendev.org/openstack/cinder/src/commit/81c48732b13b4512ca63ac0fc91ccd7b0eec2863/cinder/db/sqlalchemy/models.py#L1094-L1097). Therefore, I adjusted the code to follow a fail-fast approach; this way we won\u0027t have any surprises when trying to restore them.\n\nLet me know what you think of the latest patchset.","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"}],"cinder/tests/unit/backup/drivers/test_backup_driver_base.py":[{"author":{"_account_id":13915,"name":"Silvan Kaiser","email":"silvan@quobyte.com","username":"kaisers"},"change_message_id":"93b7d5c13a80c44eada0470c206b394d6b1405d2","unresolved":true,"context_lines":[{"line_number":455,"context_line":"        `volume_type_encryption` field."},{"line_number":456,"context_line":"        \"\"\""},{"line_number":457,"context_line":"        container \u003d {}"},{"line_number":458,"context_line":"        encryption_spec \u003d {\u0027control_location\u0027: \u0027front-end\u0027,"},{"line_number":459,"context_line":"                           \u0027provider\u0027: \u0027provider\u0027,"},{"line_number":460,"context_line":"                           \u0027cipher\u0027: \u0027cipher\u0027,"},{"line_number":461,"context_line":"                           \u0027key_size\u0027: 256}"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"        db.volume_type_create(self.ctxt, {\u0027id\u0027: \u0027vol_type_uuid_1\u0027,"},{"line_number":464,"context_line":"                                          \u0027name\u0027: \u0027enc_vol_type_1\u0027})"}],"source_content_type":"text/x-python","patch_set":5,"id":"414a0b8d_7c85c944","line":461,"range":{"start_line":458,"start_character":1,"end_line":461,"end_character":43},"updated":"2026-02-20 14:43:08.000000000","message":"Apologies if this too nitpicky but if the backup allows partial encryption specs (see comment above) I\u0027d recommend adding that case here. Maybe @ddt the relevant scenarios for the encryption_spec.","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"},{"author":{"_account_id":35467,"name":"Luan Utimura","display_name":"Luan Utimura","email":"luan.utimura@luizalabs.com","username":"lutimura"},"change_message_id":"18e4a44cb52cbde19857278d1853eba267c5682b","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        `volume_type_encryption` field."},{"line_number":456,"context_line":"        \"\"\""},{"line_number":457,"context_line":"        container \u003d {}"},{"line_number":458,"context_line":"        encryption_spec \u003d {\u0027control_location\u0027: \u0027front-end\u0027,"},{"line_number":459,"context_line":"                           \u0027provider\u0027: \u0027provider\u0027,"},{"line_number":460,"context_line":"                           \u0027cipher\u0027: \u0027cipher\u0027,"},{"line_number":461,"context_line":"                           \u0027key_size\u0027: 256}"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":"        db.volume_type_create(self.ctxt, {\u0027id\u0027: \u0027vol_type_uuid_1\u0027,"},{"line_number":464,"context_line":"                                          \u0027name\u0027: \u0027enc_vol_type_1\u0027})"}],"source_content_type":"text/x-python","patch_set":5,"id":"4c123c2b_fb3bed81","line":461,"range":{"start_line":458,"start_character":1,"end_line":461,"end_character":43},"in_reply_to":"414a0b8d_7c85c944","updated":"2026-04-02 19:53:51.000000000","message":"Ack.","commit_id":"5e0e112fb2638d084c225838b2bb268687c9f811"}]}
