)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"e899baf767791591e33369e83735ef025d8e56ae","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"93134ffc_71841a1b","updated":"2026-01-16 15:55:10.000000000","message":"Adding netapp reviewers","commit_id":"b8d4a3a3a8e1a6c74d2af3d335482d469f61d4ef"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"001dcddf99c06d436b9a6e64c11b33889fe4e017","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ff123174_533a8624","updated":"2026-01-16 16:01:06.000000000","message":"Thanks for working on the issue. Please look at the comments below.","commit_id":"b8d4a3a3a8e1a6c74d2af3d335482d469f61d4ef"},{"author":{"_account_id":36737,"name":"ohjiwoo","email":"jiwooo.oh@samsung.com","username":"ohjiwooo"},"change_message_id":"356ccb0a44fbe759a202eab76e889030907389aa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9d776285_1f539ae2","updated":"2026-01-05 07:10:32.000000000","message":"recheck","commit_id":"b8d4a3a3a8e1a6c74d2af3d335482d469f61d4ef"},{"author":{"_account_id":36737,"name":"ohjiwoo","email":"jiwooo.oh@samsung.com","username":"ohjiwooo"},"change_message_id":"5c4ca07e438f56bf5d529e0390d1e463248cef03","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"be20b667_324c98d0","updated":"2026-01-05 08:22:44.000000000","message":"recheck","commit_id":"b8d4a3a3a8e1a6c74d2af3d335482d469f61d4ef"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"de2b6623140e89177b5dda19569ebc12965806fa","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"889ad261_1b6d226f","updated":"2026-02-26 14:45:22.000000000","message":"LGTM now.","commit_id":"90565edcd93eb8e8c982905c2aa03f94f1ef8428"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"c6766593ea5103b9e6272a9b6a68fee7d738d67c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3de134ba_37102829","updated":"2026-02-13 12:31:04.000000000","message":"Looks good to me. Improves driver logging and it\u0027s localized in the driver. It should be good to merge as long as someone from NetApp +1 it.","commit_id":"90565edcd93eb8e8c982905c2aa03f94f1ef8428"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"0cf8eb01ccae16f03bb2647a98e848b78e9d156a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"d52215a2_9df05408","updated":"2026-05-04 18:14:36.000000000","message":"releasenotes are missing. hence I am -1. Code looks fine to me.","commit_id":"4543bd4b91fdc46bd69c3e8086a704cbb99ef0ba"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"bc84ef35e6dcd53f394c45fa33dddf2ebea0f800","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"e1cff7a2_254e16da","updated":"2026-05-06 12:37:38.000000000","message":"Can you paste the how to put off the log files after and before your change? in the launchpad bug?","commit_id":"579861dd02c6bb075bc47907af5c19a4a9cb2247"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"51dc1e2f66ae83caa36bb1b892382abeeaa8305a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a7683854_769c9175","updated":"2026-05-07 13:32:29.000000000","message":"Looks good to me. This is just a loggin improvement contained in the driver. The developer posted test logs in the bug. I don\u0027t think it\u0027s worth a release note.","commit_id":"9ac5ea10439f97e5f45acd623bb840caa41026b1"},{"author":{"_account_id":36737,"name":"ohjiwoo","email":"jiwooo.oh@samsung.com","username":"ohjiwooo"},"change_message_id":"cb11141f6c5be775fa0f7ec0b54da2057ab0dfe9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"12d16f3a_8fddbdaf","updated":"2026-05-11 01:22:03.000000000","message":"recheck","commit_id":"9ac5ea10439f97e5f45acd623bb840caa41026b1"},{"author":{"_account_id":36737,"name":"ohjiwoo","email":"jiwooo.oh@samsung.com","username":"ohjiwooo"},"change_message_id":"dd1012e27c35521ef1a996456afd82a2f46774fb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"f09a6ccb_4aa8a7b9","updated":"2026-05-14 03:06:42.000000000","message":"recheck","commit_id":"9ac5ea10439f97e5f45acd623bb840caa41026b1"}],"cinder/volume/drivers/netapp/dataontap/block_base.py":[{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"001dcddf99c06d436b9a6e64c11b33889fe4e017","unresolved":true,"context_lines":[{"line_number":356,"context_line":"            LOG.exception(\"Exception cloning volume %(name)s from source \""},{"line_number":357,"context_line":"                          \"volume %(source)s.\","},{"line_number":358,"context_line":"                          {\u0027name\u0027: snapshot_name, \u0027source\u0027: lun.name})"},{"line_number":359,"context_line":"            raise"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":362,"context_line":"        \"\"\"Driver entry point for deleting a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"d5fb7b5e_f3783063","line":359,"updated":"2026-01-16 16:01:06.000000000","message":"Please raise VolumeBackendAPIException with message as the above which can also be used in the log. Example implementation below:\n\n        except Exception as e:\n            msg \u003d _(\"Failed to get aggregates for SVM %(svm)s: %(err)s\") % {\n                \"svm\": self.vserver,\n                \"err\": e,\n            }\n            LOG.error(msg)\n            raise exception.VolumeBackendAPIException(data\u003dmsg)","commit_id":"b8d4a3a3a8e1a6c74d2af3d335482d469f61d4ef"},{"author":{"_account_id":38059,"name":"Anoop Kumar Shukla","display_name":"Anoop Shukla","email":"anoop.shukla@netapp.com","username":"anoop2","status":"NetApp"},"change_message_id":"de2b6623140e89177b5dda19569ebc12965806fa","unresolved":false,"context_lines":[{"line_number":356,"context_line":"            LOG.exception(\"Exception cloning volume %(name)s from source \""},{"line_number":357,"context_line":"                          \"volume %(source)s.\","},{"line_number":358,"context_line":"                          {\u0027name\u0027: snapshot_name, \u0027source\u0027: lun.name})"},{"line_number":359,"context_line":"            raise"},{"line_number":360,"context_line":""},{"line_number":361,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":362,"context_line":"        \"\"\"Driver entry point for deleting a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"0d633d7c_d2ff53d1","line":359,"in_reply_to":"d5fb7b5e_f3783063","updated":"2026-02-26 14:45:22.000000000","message":"Done","commit_id":"b8d4a3a3a8e1a6c74d2af3d335482d469f61d4ef"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"d21bd488ca79956add320ae9b39d7cc065bda8eb","unresolved":true,"context_lines":[{"line_number":352,"context_line":"        try:"},{"line_number":353,"context_line":"            self._clone_lun(lun.name, snapshot_name, space_reserved\u003d\u0027false\u0027,"},{"line_number":354,"context_line":"                            is_snapshot\u003dTrue)"},{"line_number":355,"context_line":"        except Exception as e:"},{"line_number":356,"context_line":"            msg \u003d _(\"Exception cloning volume %(name)s from source\""},{"line_number":357,"context_line":"                    \" volume %(source)s: %(err)s\") % {"},{"line_number":358,"context_line":"                \"name\": snapshot_name, \"source\": lun.name, \"err\": e,"}],"source_content_type":"text/x-python","patch_set":5,"id":"180b376b_2e4b61e3","line":355,"updated":"2026-05-06 15:02:30.000000000","message":"`Exception`is too broad at here - this will also hide genuine `NotImplementedError`\n\nthe volume/manager change already logs all snapshot failures, what you are trying to catch should already be caught at https://github.com/openstack/cinder/blob/master/cinder/volume/manager.py#L1260","commit_id":"579861dd02c6bb075bc47907af5c19a4a9cb2247"},{"author":{"_account_id":36737,"name":"ohjiwoo","email":"jiwooo.oh@samsung.com","username":"ohjiwooo"},"change_message_id":"9e3f172a7f53dafa371f277aad2bca63c7123c8f","unresolved":false,"context_lines":[{"line_number":352,"context_line":"        try:"},{"line_number":353,"context_line":"            self._clone_lun(lun.name, snapshot_name, space_reserved\u003d\u0027false\u0027,"},{"line_number":354,"context_line":"                            is_snapshot\u003dTrue)"},{"line_number":355,"context_line":"        except Exception as e:"},{"line_number":356,"context_line":"            msg \u003d _(\"Exception cloning volume %(name)s from source\""},{"line_number":357,"context_line":"                    \" volume %(source)s: %(err)s\") % {"},{"line_number":358,"context_line":"                \"name\": snapshot_name, \"source\": lun.name, \"err\": e,"}],"source_content_type":"text/x-python","patch_set":5,"id":"afd3dd7f_b28e199d","line":355,"in_reply_to":"180b376b_2e4b61e3","updated":"2026-05-11 01:24:43.000000000","message":"Done","commit_id":"579861dd02c6bb075bc47907af5c19a4a9cb2247"},{"author":{"_account_id":10058,"name":"Erlon R. Cruz","email":"erlon.rodrigues.cruz@canonical.com","username":"sombrafam"},"change_message_id":"51dc1e2f66ae83caa36bb1b892382abeeaa8305a","unresolved":true,"context_lines":[{"line_number":352,"context_line":"        try:"},{"line_number":353,"context_line":"            self._clone_lun(lun.name, snapshot_name, space_reserved\u003d\u0027false\u0027,"},{"line_number":354,"context_line":"                            is_snapshot\u003dTrue)"},{"line_number":355,"context_line":"        except Exception as e:"},{"line_number":356,"context_line":"            msg \u003d _(\"Exception cloning volume %(name)s from source\""},{"line_number":357,"context_line":"                    \" volume %(source)s: %(err)s\") % {"},{"line_number":358,"context_line":"                \"name\": snapshot_name, \"source\": lun.name, \"err\": e,"}],"source_content_type":"text/x-python","patch_set":5,"id":"1074a082_eabc3315","line":355,"in_reply_to":"180b376b_2e4b61e3","updated":"2026-05-07 13:32:29.000000000","message":"I don\u0027t think this is a problem here. As long as the exception is re-raised. The upper layers will act on that.","commit_id":"579861dd02c6bb075bc47907af5c19a4a9cb2247"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ab70fea70dc2044e32903f0cd91a2885f94e96c1","unresolved":true,"context_lines":[{"line_number":358,"context_line":"                \"name\": snapshot_name, \"source\": lun.name, \"err\": e,"},{"line_number":359,"context_line":"            }"},{"line_number":360,"context_line":"            LOG.error(msg)"},{"line_number":361,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":364,"context_line":"        \"\"\"Driver entry point for deleting a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7035dc61_c006f54f","line":361,"updated":"2026-05-14 07:00:21.000000000","message":"here all caught exception are converted to VolumeBackendAPIException!\n\nthe exception is re-raised, but converting all exception types to VolumeBackendAPIException loses other important diagnostics info.\n\nwhat about other exceptions !!! - by catching Exception (the broadest catch), mean \"catch everything\" - but then only re-raising as one specific type.\n\nmay be missing NetApp-specific context here, but in general, we want to preserve the original exception type unless there\u0027s a specific reason to convert it. \n\nThis is important because callers and operators need to distinguish between\nnetwork fails, resource not found, notimplemented error, or NetApp specific error\n\nif the goal is just to add logging context, we can do that without losing exception type.\n\n```\ntry:\n      self._clone_lun()\nexcept Exception:\n      LOG.error(\"Failed to clone, because ... )\n      raise\n\n```\n\nbest would be to catch only expected exceptions and let unexpected ones propagate as-is","commit_id":"9ac5ea10439f97e5f45acd623bb840caa41026b1"},{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"ab70fea70dc2044e32903f0cd91a2885f94e96c1","unresolved":true,"context_lines":[{"line_number":358,"context_line":"                \"name\": snapshot_name, \"source\": lun.name, \"err\": e,"},{"line_number":359,"context_line":"            }"},{"line_number":360,"context_line":"            LOG.error(msg)"},{"line_number":361,"context_line":"            raise exception.VolumeBackendAPIException(data\u003dmsg)"},{"line_number":362,"context_line":""},{"line_number":363,"context_line":"    def delete_snapshot(self, snapshot):"},{"line_number":364,"context_line":"        \"\"\"Driver entry point for deleting a snapshot.\"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"fe64801a_c5f9da53","line":361,"updated":"2026-05-14 07:00:21.000000000","message":"we should have test for this to prevent regression, atleast\n- _clone_lun() raising an exception results in VolumeBackendAPIException being raised\n- exception message contains the expected snapshot name, source LUN","commit_id":"9ac5ea10439f97e5f45acd623bb840caa41026b1"}],"releasenotes/notes/bug-2137446-add-log-create-snapshot.yaml":[{"author":{"_account_id":34860,"name":"Amit Uniyal","email":"auniyal@redhat.com","username":"auniyal"},"change_message_id":"d21bd488ca79956add320ae9b39d7cc065bda8eb","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    `Bug #2137446 \u003chttps://bugs.launchpad.net/cinder/+bug/2137446\u003e`_:"},{"line_number":5,"context_line":"    Added a log entry when snapshot creation fails, including the stack trace."},{"line_number":6,"context_line":"    When `clone_lun` fails during NetApp snapshot creation, the error is logged"},{"line_number":7,"context_line":"    and a `VolumeBackendAPIException` is raised to propagate the failure."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"45d1668d_2d72ef45","line":7,"updated":"2026-05-06 15:02:30.000000000","message":"release notes are for customers/users to understand new features or some major chnanges. \nwhile logging improvements are internal for operators or devs to see and debug stuff. this change does not required a release note it can be droped.","commit_id":"579861dd02c6bb075bc47907af5c19a4a9cb2247"}]}
