)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":36171,"name":"jayaanand borra","display_name":"jayaanand borra","email":"jayaanand.borra@netapp.com","username":"jayaanan","status":"netapp"},"change_message_id":"00075ab2903580e835936a93eadbdcd5d7ab0c2d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"a069abd8_5dc133ae","updated":"2026-09-15 05:25:38.000000000","message":"also run NetApp CI to make sure no regression","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"},{"author":{"_account_id":38864,"name":"Sridhar Kumar Ettkepalli","display_name":"Sridhar","email":"sridharkumar.ettkepalli@windriver.com","username":"settkepa"},"change_message_id":"29efc67b4e963eb75dfd2c4f23fa7d0a74774229","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"051b23b7_0daaec0b","updated":"2026-09-14 19:02:03.000000000","message":"recheck","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"fa4b47513db32631a7f578712cbf5045ec8590f4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"04cd70f6_5dd69192","updated":"2026-09-17 20:46:49.000000000","message":"Need release notes and a bug report.","commit_id":"cc64c6a6a013072a6bf62ef2fd87c11a0fa33d59"},{"author":{"_account_id":38081,"name":"Anthony Galica","display_name":"agalica","email":"anthony.galica@hitachivantara.com","username":"agalica","status":"Hitachi Vantara"},"change_message_id":"dcf5b912efa9549392035d4a66df7783e51f5cc7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"dfd78a31_22df4cc6","in_reply_to":"04cd70f6_5dd69192","updated":"2026-09-17 20:47:43.000000000","message":"Correction: Just release notes.","commit_id":"cc64c6a6a013072a6bf62ef2fd87c11a0fa33d59"}],"cinder/volume/drivers/netapp/dataontap/client/client_cmode_rest.py":[{"author":{"_account_id":31779,"name":"Jean Pierre Roquesalane","display_name":"happystacker","email":"jeanpierre.roquesalane@dell.com","username":"happystacker"},"change_message_id":"518b4f56795af094b8806a4e11e0fdfba6cb6e57","unresolved":true,"context_lines":[{"line_number":1265,"context_line":"                \u0027base-counter\u0027: base_counter,"},{"line_number":1266,"context_line":"            }"},{"line_number":1267,"context_line":"        except netapp_api.NaApiError:"},{"line_number":1268,"context_line":"            # NOTE: Re-raise the original NaApiError rather than translating it"},{"line_number":1269,"context_line":"            # to exception.NotFound. The perf_cmode fallback in"},{"line_number":1270,"context_line":"            # _init_counter_info only catches NaApiError, and NotFound is not a"},{"line_number":1271,"context_line":"            # subclass of it; translating here defeats that fallback and makes"}],"source_content_type":"text/x-python","patch_set":3,"id":"d8aa852b_452e55ad","line":1268,"updated":"2026-09-16 07:07:14.000000000","message":"Nit: The debug message says the counter was “not found,” but the caught NaApiError could represent another REST failure, such as authorization or a transient server error.","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"},{"author":{"_account_id":38864,"name":"Sridhar Kumar Ettkepalli","display_name":"Sridhar","email":"sridharkumar.ettkepalli@windriver.com","username":"settkepa"},"change_message_id":"357844f8c18e19a4fe5dc86bcfe8bdb3908f6a55","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"                \u0027base-counter\u0027: base_counter,"},{"line_number":1266,"context_line":"            }"},{"line_number":1267,"context_line":"        except netapp_api.NaApiError:"},{"line_number":1268,"context_line":"            # NOTE: Re-raise the original NaApiError rather than translating it"},{"line_number":1269,"context_line":"            # to exception.NotFound. The perf_cmode fallback in"},{"line_number":1270,"context_line":"            # _init_counter_info only catches NaApiError, and NotFound is not a"},{"line_number":1271,"context_line":"            # subclass of it; translating here defeats that fallback and makes"}],"source_content_type":"text/x-python","patch_set":3,"id":"d1a5b9ac_f4f97b6c","line":1268,"in_reply_to":"8855972b_151cd6b6","updated":"2026-09-16 20:23:34.000000000","message":"Done","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"},{"author":{"_account_id":38864,"name":"Sridhar Kumar Ettkepalli","display_name":"Sridhar","email":"sridharkumar.ettkepalli@windriver.com","username":"settkepa"},"change_message_id":"da4491bcf868931d13a16beeab23713b4ac18b48","unresolved":false,"context_lines":[{"line_number":1265,"context_line":"                \u0027base-counter\u0027: base_counter,"},{"line_number":1266,"context_line":"            }"},{"line_number":1267,"context_line":"        except netapp_api.NaApiError:"},{"line_number":1268,"context_line":"            # NOTE: Re-raise the original NaApiError rather than translating it"},{"line_number":1269,"context_line":"            # to exception.NotFound. The perf_cmode fallback in"},{"line_number":1270,"context_line":"            # _init_counter_info only catches NaApiError, and NotFound is not a"},{"line_number":1271,"context_line":"            # subclass of it; translating here defeats that fallback and makes"}],"source_content_type":"text/x-python","patch_set":3,"id":"434cad8b_96484eb2","line":1268,"in_reply_to":"b31c65ea_1c63b14c","updated":"2026-09-16 17:49:21.000000000","message":"Thanks — made the message generic (\"Could not retrieve performance counter %s\" instead of \"not found\", since the NaApiError can be auth/transient/etc.) and raised it to info.\n\nOne small deviation from the snippet: I logged counter_name (the method argument) rather than query.get(\u0027counters.name\u0027). The except covers two send_request calls -- the counter-table lookup (query has counter_schemas.name) and the rows lookup (query has counters.name) -- so query.get(\u0027counters.name\u0027) would be None when the first request is the one that failed. counter_name is unambiguous in both paths.","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"},{"author":{"_account_id":37173,"name":"Alex Fernandes Figueirêdo","display_name":"Alex Figueiredo","email":"alex.fernandesfigueiredo@windriver.com","username":"afernand"},"change_message_id":"f9ae31423ad2c88c1848f90fc0735ee080991b21","unresolved":true,"context_lines":[{"line_number":1265,"context_line":"                \u0027base-counter\u0027: base_counter,"},{"line_number":1266,"context_line":"            }"},{"line_number":1267,"context_line":"        except netapp_api.NaApiError:"},{"line_number":1268,"context_line":"            # NOTE: Re-raise the original NaApiError rather than translating it"},{"line_number":1269,"context_line":"            # to exception.NotFound. The perf_cmode fallback in"},{"line_number":1270,"context_line":"            # _init_counter_info only catches NaApiError, and NotFound is not a"},{"line_number":1271,"context_line":"            # subclass of it; translating here defeats that fallback and makes"}],"source_content_type":"text/x-python","patch_set":3,"id":"b31c65ea_1c63b14c","line":1268,"in_reply_to":"d8aa852b_452e55ad","updated":"2026-09-16 17:04:11.000000000","message":"Agreed. The message could be something more generic to cover unforeseen situations. In addition, I suggest raising the log level to info, at minimum. E.g.: \n```python\n            LOG.info(\u0027Couldn\u0027t query fields %s for performance counter %s\u0027,\n                      query.get(\u0027fields\u0027),\n                      query.get(\u0027counters.name\u0027))\n```","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"},{"author":{"_account_id":38864,"name":"Sridhar Kumar Ettkepalli","display_name":"Sridhar","email":"sridharkumar.ettkepalli@windriver.com","username":"settkepa"},"change_message_id":"da4491bcf868931d13a16beeab23713b4ac18b48","unresolved":true,"context_lines":[{"line_number":1265,"context_line":"                \u0027base-counter\u0027: base_counter,"},{"line_number":1266,"context_line":"            }"},{"line_number":1267,"context_line":"        except netapp_api.NaApiError:"},{"line_number":1268,"context_line":"            # NOTE: Re-raise the original NaApiError rather than translating it"},{"line_number":1269,"context_line":"            # to exception.NotFound. The perf_cmode fallback in"},{"line_number":1270,"context_line":"            # _init_counter_info only catches NaApiError, and NotFound is not a"},{"line_number":1271,"context_line":"            # subclass of it; translating here defeats that fallback and makes"}],"source_content_type":"text/x-python","patch_set":3,"id":"8855972b_151cd6b6","line":1268,"in_reply_to":"d8aa852b_452e55ad","updated":"2026-09-16 17:49:21.000000000","message":"Good point — fixed. The message is now generic so it isn\u0027t misleading for auth/transient failures, and I raised it to info.","commit_id":"47f7e7f9ad4433d6edcbcf9a2ee0203e14d9f648"}]}
