)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"1f39348bec1b9a7bc4b93a4d146a233eef79b705","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"03228e4a_714542f5","updated":"2026-06-08 16:40:15.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"73dd0d1e01e7f19635f3926518243233a4ae6426","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"231e445a_ae9f979a","updated":"2026-06-08 17:16:37.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"0b5b44ed891dec95c2fe20264a932c8b06412f1c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"23442c29_8838ef44","updated":"2026-06-04 21:05:20.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"7705ce09d70e5a078fc964c8e7f0adb6a72050fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"661b55a9_f4824645","updated":"2026-06-08 14:37:10.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"b4c0897786358d1aadce30eeecc5119c0b65beb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"8fab687f_44d4403d","updated":"2026-06-08 15:58:43.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"704c4076b699aa398032b45bfb814855b2839819","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"c1a241a3_3ea49d58","updated":"2026-06-08 14:36:54.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"51b5f5ed839e97511515619e4b905a92372876a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"d5a75748_cce61799","updated":"2026-06-09 14:09:47.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"4c555ea045ef445bb51d2c3c2036a58c997acd77","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e0461822_e49e9bc1","updated":"2026-06-08 15:15:31.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"4ec5de4523bd0a401817eba9a993cd8169a88309","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f470985b_fb563925","updated":"2026-06-08 18:20:07.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"267758dbcd522bda5a39fb0ea76a89c0331373a0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f614b4ef_17451dd5","updated":"2026-06-08 17:46:33.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"984a243c9e1a1d81e9ee92dba8bf803cdabc4764","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ff4d074b_572b7d94","updated":"2026-06-04 21:07:48.000000000","message":"run Pure Storage CI","commit_id":"e500160a1b0f0f24e2e49d623ea43cdaef2c947c"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"5515ca2a0cd4a8f28baaf2a20317cfbe8fc61f46","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"73c28676_dc74ad53","updated":"2026-06-27 18:01:43.000000000","message":"recheck","commit_id":"aa572d10009248e31a01d64627057ebf8809da77"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"322c65441da0385f50689ce05988990adebd95f5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b967ad73_571768ed","updated":"2026-06-28 03:27:31.000000000","message":"recheck","commit_id":"aa572d10009248e31a01d64627057ebf8809da77"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"9d753029ba233cb819f30bc59bf2bf76430664e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f2f30fa4_bc861d5e","updated":"2026-06-28 05:30:17.000000000","message":"run Pure Storage CI","commit_id":"aa572d10009248e31a01d64627057ebf8809da77"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"d5ca8e55fbdc799cfca2656551eacd8b0fbaac39","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8602a462_95a2e243","updated":"2026-07-02 18:52:33.000000000","message":"recheck","commit_id":"2f5a08b0e39c60a5dda9ecf87dc372c8f5cf04c6"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3d25631c615c1bf4a0c2aa02ee800f37c60c0234","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"d3151337_bd1f337e","updated":"2026-07-04 22:50:17.000000000","message":"recheck","commit_id":"8e7fabf408467f31331c41ce79b3c7d825777cd6"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"a00a245b9e8d99e4611d6735faa6fe961ab99f4e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fade7937_417a0938","updated":"2026-07-04 19:45:15.000000000","message":"recheck","commit_id":"8e7fabf408467f31331c41ce79b3c7d825777cd6"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"b416826853a1235b1eb62c5c14b923d13277f036","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9cb16824_a9cc6c9a","updated":"2026-07-04 14:33:08.000000000","message":"run Pure Storage CI","commit_id":"8e7fabf408467f31331c41ce79b3c7d825777cd6"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"3d25631c615c1bf4a0c2aa02ee800f37c60c0234","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2377ac6c_ab3d4358","updated":"2026-07-04 22:50:17.000000000","message":"recheck","commit_id":"45a0d81bd971c57c2a025a9524f29ce18356e42d"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"7834f7daf66c3bcc8df01184b87133f97f13e287","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"2b1fccd2_d2c26df5","updated":"2026-07-04 22:51:10.000000000","message":"run Everpure CI","commit_id":"45a0d81bd971c57c2a025a9524f29ce18356e42d"}],"cinder/volume/drivers/pure.py":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5e5fd6767009ec14ea0c3abc97d25799f426a2cf","unresolved":true,"context_lines":[{"line_number":1332,"context_line":"            source_names\u003d[vol_name],"},{"line_number":1333,"context_line":"            volume_snapshot\u003dflasharray.VolumeSnapshotPost(suffix\u003dsuffix))"},{"line_number":1334,"context_line":"        if res.status_code !\u003d 200:"},{"line_number":1335,"context_line":"            msg \u003d res.errors[0].message"},{"line_number":1336,"context_line":"            if ERR_MSG_ALREADY_EXISTS in msg:"},{"line_number":1337,"context_line":"                return snap_name"},{"line_number":1338,"context_line":"            LOG.warning(\"Failed to create CBT snapshot for volume \""}],"source_content_type":"text/x-python","patch_set":2,"id":"426c71e7_6edb8ad2","line":1335,"updated":"2026-06-16 10:38:47.000000000","message":"please handle empty or unexpected error payload scenarios.","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"444c170fc49040c5adabd7163effaf57c10e9b41","unresolved":true,"context_lines":[{"line_number":1332,"context_line":"            source_names\u003d[vol_name],"},{"line_number":1333,"context_line":"            volume_snapshot\u003dflasharray.VolumeSnapshotPost(suffix\u003dsuffix))"},{"line_number":1334,"context_line":"        if res.status_code !\u003d 200:"},{"line_number":1335,"context_line":"            msg \u003d res.errors[0].message"},{"line_number":1336,"context_line":"            if ERR_MSG_ALREADY_EXISTS in msg:"},{"line_number":1337,"context_line":"                return snap_name"},{"line_number":1338,"context_line":"            LOG.warning(\"Failed to create CBT snapshot for volume \""}],"source_content_type":"text/x-python","patch_set":2,"id":"45726691_eb5d676d","line":1335,"in_reply_to":"426c71e7_6edb8ad2","updated":"2026-06-16 11:08:56.000000000","message":"The SDK has been constructed in a way that this can never occur and this method is used in multiple locations in the rest of the Everpure driver code","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5e5fd6767009ec14ea0c3abc97d25799f426a2cf","unresolved":true,"context_lines":[{"line_number":1360,"context_line":"                    return"},{"line_number":1361,"context_line":"            if self.configuration.pure_eradicate_on_delete:"},{"line_number":1362,"context_line":"                current_array.delete_volume_snapshots(names\u003d[snap_name])"},{"line_number":1363,"context_line":"        except Exception:"},{"line_number":1364,"context_line":"            LOG.warning(\"Best-effort cleanup of CBT snapshot %s failed; it \""},{"line_number":1365,"context_line":"                        \"may be leaked.\", snap_name)"},{"line_number":1366,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"c2b0e356_40126696","line":1363,"updated":"2026-06-16 10:38:47.000000000","message":"is it possible to narrow down the exception?","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"444c170fc49040c5adabd7163effaf57c10e9b41","unresolved":false,"context_lines":[{"line_number":1360,"context_line":"                    return"},{"line_number":1361,"context_line":"            if self.configuration.pure_eradicate_on_delete:"},{"line_number":1362,"context_line":"                current_array.delete_volume_snapshots(names\u003d[snap_name])"},{"line_number":1363,"context_line":"        except Exception:"},{"line_number":1364,"context_line":"            LOG.warning(\"Best-effort cleanup of CBT snapshot %s failed; it \""},{"line_number":1365,"context_line":"                        \"may be leaked.\", snap_name)"},{"line_number":1366,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"8d20e0f5_9478fb9d","line":1363,"in_reply_to":"c2b0e356_40126696","updated":"2026-06-16 11:08:56.000000000","message":"Done","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"},{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5e5fd6767009ec14ea0c3abc97d25799f426a2cf","unresolved":true,"context_lines":[{"line_number":1390,"context_line":"            current_array \u003d self._get_current_array()"},{"line_number":1391,"context_line":"            name \u003d self._create_cbt_array_snapshot(current_array, volume,"},{"line_number":1392,"context_line":"                                                   snapshot)"},{"line_number":1393,"context_line":"        except Exception:"},{"line_number":1394,"context_line":"            LOG.exception(\"Unexpected error creating CBT reference snapshot \""},{"line_number":1395,"context_line":"                          \"for volume %s.\", self._get_vol_name(volume))"},{"line_number":1396,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aa4d2c7_6f9c21c2","line":1393,"updated":"2026-06-16 10:38:47.000000000","message":"is it possible to narrow down the exception?","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"444c170fc49040c5adabd7163effaf57c10e9b41","unresolved":false,"context_lines":[{"line_number":1390,"context_line":"            current_array \u003d self._get_current_array()"},{"line_number":1391,"context_line":"            name \u003d self._create_cbt_array_snapshot(current_array, volume,"},{"line_number":1392,"context_line":"                                                   snapshot)"},{"line_number":1393,"context_line":"        except Exception:"},{"line_number":1394,"context_line":"            LOG.exception(\"Unexpected error creating CBT reference snapshot \""},{"line_number":1395,"context_line":"                          \"for volume %s.\", self._get_vol_name(volume))"},{"line_number":1396,"context_line":"            return None"}],"source_content_type":"text/x-python","patch_set":2,"id":"1edea6b9_3fb48c75","line":1393,"in_reply_to":"7aa4d2c7_6f9c21c2","updated":"2026-06-16 11:08:56.000000000","message":"Done","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"}],"releasenotes/everpure-cbt-incremental-backup-32b9adeb63014c29.yaml":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"5e5fd6767009ec14ea0c3abc97d25799f426a2cf","unresolved":true,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Everpure FlashArray driver: added Changed Block Tracking (CBT)"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"71984933_364c55bc","line":1,"updated":"2026-06-16 10:38:47.000000000","message":"notes are placed directly under releasenotes folder.","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"},{"author":{"_account_id":13425,"name":"Simon Dodsley","email":"simon@purestorage.com","username":"sdodsley"},"change_message_id":"444c170fc49040c5adabd7163effaf57c10e9b41","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Everpure FlashArray driver: added Changed Block Tracking (CBT)"}],"source_content_type":"text/x-yaml","patch_set":2,"id":"7e3a0a55_251b6a91","line":1,"in_reply_to":"71984933_364c55bc","updated":"2026-06-16 11:08:56.000000000","message":"Done","commit_id":"c5803c7bcd241322287eed8b677cc08cb3727156"}]}
