)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"24e05e49f85b00a6d19d4715166318ad0545ef93","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"723fad34_c31ffffa","updated":"2026-02-11 14:14:02.000000000","message":"recheck\nGrenade job should be fixed now","commit_id":"9ab3111621ba760d6c717ed24a031e3761f379a1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3752982bc2387ca31ee1776764692f846b484aa1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"01a1623c_ef87cb69","updated":"2026-03-06 06:43:57.000000000","message":"Some more comments inline, ty Carlos!","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"83dc6dcb173e07ad33b9fa34df213129361f7696","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c6c7a142_1b577d87","updated":"2026-03-06 19:04:29.000000000","message":"Thanks for the review, PTAL","commit_id":"e0953f39631d23107ed405866f3a64b254a74e2d"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bc0ec3d38c5533b5931a381e83b8bfb0e84863d4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"27b0967a_579a0f15","updated":"2026-03-10 13:13:00.000000000","message":"LGTM, provide one minor comment","commit_id":"b398ffdd7fec2d88cd1c2637c323118df9d75653"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3482467130292cb85a2144211455a6cba8a60273","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"87f34230_902c23cc","updated":"2026-03-06 20:52:21.000000000","message":"LGTM, ty Carlos!","commit_id":"b398ffdd7fec2d88cd1c2637c323118df9d75653"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"724d4a55fc5ea39f60c75ab2c8ab48c31f9935e4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ac875611_19bd9df1","updated":"2026-03-10 20:54:33.000000000","message":"Ty for addressing concerns here..","commit_id":"b398ffdd7fec2d88cd1c2637c323118df9d75653"}],"manila/share/drivers/cephfs/driver.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"06bba032e7a87f6ef873f3e27e05905808afb3b2","unresolved":true,"context_lines":[{"line_number":787,"context_line":"                   \"gr\": share[\u0027share_group_id\u0027]})"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"        clone_name \u003d self._get_subvolume_name(share[\u0027id\u0027])"},{"line_number":790,"context_line":"        if self._need_to_cancel_clone(share, clone_name):"},{"line_number":791,"context_line":"            try:"},{"line_number":792,"context_line":"                argdict \u003d {"},{"line_number":793,"context_line":"                    \"vol_name\": self.volname,"}],"source_content_type":"text/x-python","patch_set":1,"id":"94f4ca5b_d10546f1","line":790,"range":{"start_line":790,"start_character":8,"end_line":790,"end_character":57},"updated":"2026-02-10 23:57:14.000000000","message":"This would fail even before we got to the logic below","commit_id":"9ab3111621ba760d6c717ed24a031e3761f379a1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"f3304321efd683b7b00e26e8e13b95bad2539f59","unresolved":false,"context_lines":[{"line_number":787,"context_line":"                   \"gr\": share[\u0027share_group_id\u0027]})"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"        clone_name \u003d self._get_subvolume_name(share[\u0027id\u0027])"},{"line_number":790,"context_line":"        if self._need_to_cancel_clone(share, clone_name):"},{"line_number":791,"context_line":"            try:"},{"line_number":792,"context_line":"                argdict \u003d {"},{"line_number":793,"context_line":"                    \"vol_name\": self.volname,"}],"source_content_type":"text/x-python","patch_set":1,"id":"a8ffd831_f025ebfa","line":790,"range":{"start_line":790,"start_character":8,"end_line":790,"end_character":57},"in_reply_to":"85eea361_57dc39f0","updated":"2026-03-03 19:02:10.000000000","message":"Done","commit_id":"9ab3111621ba760d6c717ed24a031e3761f379a1"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"ee859e79783ab6f869602a6d9a4c41ca5946181c","unresolved":true,"context_lines":[{"line_number":787,"context_line":"                   \"gr\": share[\u0027share_group_id\u0027]})"},{"line_number":788,"context_line":""},{"line_number":789,"context_line":"        clone_name \u003d self._get_subvolume_name(share[\u0027id\u0027])"},{"line_number":790,"context_line":"        if self._need_to_cancel_clone(share, clone_name):"},{"line_number":791,"context_line":"            try:"},{"line_number":792,"context_line":"                argdict \u003d {"},{"line_number":793,"context_line":"                    \"vol_name\": self.volname,"}],"source_content_type":"text/x-python","patch_set":1,"id":"85eea361_57dc39f0","line":790,"range":{"start_line":790,"start_character":8,"end_line":790,"end_character":57},"in_reply_to":"94f4ca5b_d10546f1","updated":"2026-02-11 17:27:11.000000000","message":"good catch, thanks!","commit_id":"9ab3111621ba760d6c717ed24a031e3761f379a1"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3752982bc2387ca31ee1776764692f846b484aa1","unresolved":true,"context_lines":[{"line_number":771,"context_line":"                self.rados_client, \"fs clone status\", argdict)"},{"line_number":772,"context_line":"            if status in (CLONE_PENDING, CLONE_INPROGRESS):"},{"line_number":773,"context_line":"                need_to_cancel_clone \u003d True"},{"line_number":774,"context_line":"        except exception.ShareBackendException as e:"},{"line_number":775,"context_line":"            # Trying to get clone status on a regular subvolume is expected"},{"line_number":776,"context_line":"            # to fail."},{"line_number":777,"context_line":"            if \u0027not allowed on subvolume\u0027 not in str(e).lower():"},{"line_number":778,"context_line":"                if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":779,"context_line":"                    raise"},{"line_number":780,"context_line":"                raise exception.ShareBackendException("},{"line_number":781,"context_line":"                    \"Failed to remove share.\")"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return need_to_cancel_clone"},{"line_number":784,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"a480ca32_8c1ea231","line":781,"range":{"start_line":774,"start_character":0,"end_line":781,"end_character":46},"updated":"2026-03-06 06:43:57.000000000","message":"```\n  except exception.ShareBackendException as e:\n      err_msg \u003d str(e).lower()\n      if \u0027not allowed on subvolume\u0027 in err_msg:\n          pass  # expected for regular subvolumes\n      elif \u0027does not exist\u0027 in err_msg:\n          raise  # let delete_share handle it\n      else:\n          raise exception.ShareBackendException(\n              \"Failed to remove share.\")\n```","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"83dc6dcb173e07ad33b9fa34df213129361f7696","unresolved":false,"context_lines":[{"line_number":771,"context_line":"                self.rados_client, \"fs clone status\", argdict)"},{"line_number":772,"context_line":"            if status in (CLONE_PENDING, CLONE_INPROGRESS):"},{"line_number":773,"context_line":"                need_to_cancel_clone \u003d True"},{"line_number":774,"context_line":"        except exception.ShareBackendException as e:"},{"line_number":775,"context_line":"            # Trying to get clone status on a regular subvolume is expected"},{"line_number":776,"context_line":"            # to fail."},{"line_number":777,"context_line":"            if \u0027not allowed on subvolume\u0027 not in str(e).lower():"},{"line_number":778,"context_line":"                if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":779,"context_line":"                    raise"},{"line_number":780,"context_line":"                raise exception.ShareBackendException("},{"line_number":781,"context_line":"                    \"Failed to remove share.\")"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"        return need_to_cancel_clone"},{"line_number":784,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"b198fd4b_c879d412","line":781,"range":{"start_line":774,"start_character":0,"end_line":781,"end_character":46},"in_reply_to":"a480ca32_8c1ea231","updated":"2026-03-06 19:04:29.000000000","message":"Done","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3752982bc2387ca31ee1776764692f846b484aa1","unresolved":true,"context_lines":[{"line_number":822,"context_line":"            # deleted. As this should be idempotent, we should not fail."},{"line_number":823,"context_line":"            if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":824,"context_line":"                msg \u003d (\"Subvolume %(subvolume)s cannot be found on the \""},{"line_number":825,"context_line":"                       \"backend.\", {\u0027subvolume\u0027: clone_name})"},{"line_number":826,"context_line":"                LOG.warning(msg)"},{"line_number":827,"context_line":"                return"},{"line_number":828,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"7ebd1259_2a1a1d46","line":825,"range":{"start_line":825,"start_character":33,"end_line":825,"end_character":61},"updated":"2026-03-06 06:43:57.000000000","message":"Did you mean to use \u0027%\u0027 instead of the comma?","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"83dc6dcb173e07ad33b9fa34df213129361f7696","unresolved":false,"context_lines":[{"line_number":822,"context_line":"            # deleted. As this should be idempotent, we should not fail."},{"line_number":823,"context_line":"            if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":824,"context_line":"                msg \u003d (\"Subvolume %(subvolume)s cannot be found on the \""},{"line_number":825,"context_line":"                       \"backend.\", {\u0027subvolume\u0027: clone_name})"},{"line_number":826,"context_line":"                LOG.warning(msg)"},{"line_number":827,"context_line":"                return"},{"line_number":828,"context_line":"            raise"}],"source_content_type":"text/x-python","patch_set":3,"id":"3221cc63_9802aa83","line":825,"range":{"start_line":825,"start_character":33,"end_line":825,"end_character":61},"in_reply_to":"7ebd1259_2a1a1d46","updated":"2026-03-06 19:04:29.000000000","message":"yep, good catch :)","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":36180,"name":"Gireesh Awasthi","display_name":"Gireesh","email":"gawasthi2010@gmail.com","username":"agireesh","status":"NetApp"},"change_message_id":"bc0ec3d38c5533b5931a381e83b8bfb0e84863d4","unresolved":true,"context_lines":[{"line_number":823,"context_line":"        except exception.ShareBackendException as e:"},{"line_number":824,"context_line":"            # Couldn\u0027t find the subvolume in the backend, means it is already"},{"line_number":825,"context_line":"            # deleted. As this should be idempotent, we should not fail."},{"line_number":826,"context_line":"            if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":827,"context_line":"                msg \u003d (\"Subvolume %(subvolume)s cannot be found on the \""},{"line_number":828,"context_line":"                       \"backend.\" % {\u0027subvolume\u0027: clone_name})"},{"line_number":829,"context_line":"                LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"e2a0657d_1c7cf976","line":826,"range":{"start_line":826,"start_character":12,"end_line":826,"end_character":50},"updated":"2026-03-10 13:13:00.000000000","message":"Is it possible to add the condition based on error code instead of message.","commit_id":"b398ffdd7fec2d88cd1c2637c323118df9d75653"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"724d4a55fc5ea39f60c75ab2c8ab48c31f9935e4","unresolved":false,"context_lines":[{"line_number":823,"context_line":"        except exception.ShareBackendException as e:"},{"line_number":824,"context_line":"            # Couldn\u0027t find the subvolume in the backend, means it is already"},{"line_number":825,"context_line":"            # deleted. As this should be idempotent, we should not fail."},{"line_number":826,"context_line":"            if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":827,"context_line":"                msg \u003d (\"Subvolume %(subvolume)s cannot be found on the \""},{"line_number":828,"context_line":"                       \"backend.\" % {\u0027subvolume\u0027: clone_name})"},{"line_number":829,"context_line":"                LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"f0927508_45f56a69","line":826,"range":{"start_line":826,"start_character":12,"end_line":826,"end_character":50},"in_reply_to":"5db2176c_6eb20df4","updated":"2026-03-10 20:54:33.000000000","message":"If the client supports specific error numbers, yes - that\u0027d be a good improvement to the ceph driver.","commit_id":"b398ffdd7fec2d88cd1c2637c323118df9d75653"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"8a20fceecc79e0be065f9f0caee06cb0bdbf7e45","unresolved":true,"context_lines":[{"line_number":823,"context_line":"        except exception.ShareBackendException as e:"},{"line_number":824,"context_line":"            # Couldn\u0027t find the subvolume in the backend, means it is already"},{"line_number":825,"context_line":"            # deleted. As this should be idempotent, we should not fail."},{"line_number":826,"context_line":"            if \u0027does not exist\u0027 in str(e).lower():"},{"line_number":827,"context_line":"                msg \u003d (\"Subvolume %(subvolume)s cannot be found on the \""},{"line_number":828,"context_line":"                       \"backend.\" % {\u0027subvolume\u0027: clone_name})"},{"line_number":829,"context_line":"                LOG.warning(msg)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5db2176c_6eb20df4","line":826,"range":{"start_line":826,"start_character":12,"end_line":826,"end_character":50},"in_reply_to":"e2a0657d_1c7cf976","updated":"2026-03-10 19:08:15.000000000","message":"That\u0027s a good suggestion - the rados client will respond with a message though, so that\u0027s why in the driver we look for an error message substring. Could be a good enhancement to the driver in the future though","commit_id":"b398ffdd7fec2d88cd1c2637c323118df9d75653"}],"test-requirements.txt":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3752982bc2387ca31ee1776764692f846b484aa1","unresolved":true,"context_lines":[{"line_number":1,"context_line":"hacking\u003e\u003d8.0.0,\u003c8.1.0 # Apache-2.0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"coverage\u003e\u003d5.2.1 # Apache-2.0"},{"line_number":4,"context_line":"ddt\u003e\u003d1.4.1 # MIT"}],"source_content_type":"text/plain","patch_set":3,"id":"34d680c8_f5861e79","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":34},"updated":"2026-03-06 06:43:57.000000000","message":"why is this needed?","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"9effc892c88e7b0f0d758ca593a719295b352bf4","unresolved":true,"context_lines":[{"line_number":1,"context_line":"hacking\u003e\u003d8.0.0,\u003c8.1.0 # Apache-2.0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"coverage\u003e\u003d5.2.1 # Apache-2.0"},{"line_number":4,"context_line":"ddt\u003e\u003d1.4.1 # MIT"}],"source_content_type":"text/plain","patch_set":3,"id":"e18c3047_14e09d26","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":34},"in_reply_to":"34d680c8_f5861e79","updated":"2026-03-06 19:54:59.000000000","message":"this still needs to be addressed","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"772fcd7278e3190c001cf78ac18d120edc520bd8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"hacking\u003e\u003d8.0.0,\u003c8.1.0 # Apache-2.0"},{"line_number":2,"context_line":""},{"line_number":3,"context_line":"coverage\u003e\u003d5.2.1 # Apache-2.0"},{"line_number":4,"context_line":"ddt\u003e\u003d1.4.1 # MIT"}],"source_content_type":"text/plain","patch_set":3,"id":"0376d99d_ea797158","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":34},"in_reply_to":"e18c3047_14e09d26","updated":"2026-03-06 20:43:02.000000000","message":"argh, missed it. my bad. It was part of some changes I needed locally to make my unit tests run again","commit_id":"66948e72542b8bd782c0996977c5894afcf956d5"}]}
