)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"f00c0286ed4eadf81ad49575b7ec53e7f86a43b2","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix deferred deletion in share show"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Deferred deletion states deferred_deleting, error_deferred_deleting are"},{"line_number":10,"context_line":"visible for non-admin user in \u0027share show\u0027 command. Fixed this."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"partially-implements: bp/deferred-deletion"},{"line_number":13,"context_line":"Change-Id: I42ddda3144a3f52b4bc0420d5acde1e5e7560264"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"dd9f82da_87c66e26","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":63},"updated":"2024-05-28 13:51:48.000000000","message":"this feels a bit confusing, maybe change it to:\nShares that had its deletion deferred and have the status set to deferred_deleting and error_deferred_deleting are showing up when performing share show. This issue has now been fixed.","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"33cd2e9b17353bed0d5ba9e0e10225cba23e2bf1","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix deferred deletion in share show"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Deferred deletion states deferred_deleting, error_deferred_deleting are"},{"line_number":10,"context_line":"visible for non-admin user in \u0027share show\u0027 command. Fixed this."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"partially-implements: bp/deferred-deletion"},{"line_number":13,"context_line":"Change-Id: I42ddda3144a3f52b4bc0420d5acde1e5e7560264"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"09ac02e7_addde769","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":63},"in_reply_to":"dd9f82da_87c66e26","updated":"2024-05-29 08:37:12.000000000","message":"Done","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"88f79acc55688f9ee8f287e766daa278bdeaeb80","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"923e1b88_04e790b2","updated":"2024-05-28 13:49:36.000000000","message":"Thanks for the fix. Could you please file a LP bug and reference it here? As well as add a release note for the fix?\n\nAlso, did you test if the same is happening for snapshots?","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e2c80c32898a18914524d07af7682b24e1ee529e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"f3b4d80b_5deac1b4","in_reply_to":"923e1b88_04e790b2","updated":"2024-05-29 01:13:42.000000000","message":"+1, need to check it.","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"1dc93586ac012632d4ed7c0dcfe6cf1513679021","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"0f48e3f8_192d7477","updated":"2024-05-30 00:56:03.000000000","message":"LGTM, thanks.","commit_id":"97bc13015855d3b014d54a68f9e4a55eee4adb54"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba0d4b6d3e1651794c0333eb41649d764b132977","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"871112b8_e43b46b0","updated":"2024-05-30 14:31:35.000000000","message":"Thanks for the fix; i\u0027m requesting minor changes to the tests inline..","commit_id":"97bc13015855d3b014d54a68f9e4a55eee4adb54"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"039469010ceb119685ef0d5e2beb085075304af4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"a98f6fd0_a997a2b4","updated":"2024-05-30 15:09:54.000000000","message":"LGTM, thanks for your change.","commit_id":"ef03cc9d08d4e7a5928a5265b894f4eb6206b8a9"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"a5a68411c8987e63866c7243fe881e5702d18b70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a981aaf8_530693b1","updated":"2024-05-31 16:50:16.000000000","message":"LGTM, thank you Kiran","commit_id":"be0c8561c9788e4a2b10c4abd3e30d62d84b5156"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"3cf0fd3bb92d4e8be6d10f83d250a71fdd87b6c6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"8dc5c7c2_21c56546","updated":"2024-05-31 18:21:59.000000000","message":"Thanks Kiran!\n\nCould you please backport this to stable/2024.1 when it merges?","commit_id":"be0c8561c9788e4a2b10c4abd3e30d62d84b5156"}],"manila/api/v1/shares.py":[{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"866597552337b6230ad6963627b6ed2dd9783e38","unresolved":true,"context_lines":[{"line_number":60,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        try:"},{"line_number":63,"context_line":"            share \u003d self.share_api.get(context, id)"},{"line_number":64,"context_line":"            policy_str \u003d \"list_shares_in_deferred_deletion_states\""},{"line_number":65,"context_line":"            authorized \u003d policy.check_policy("},{"line_number":66,"context_line":"                context, \u0027share\u0027, policy_str, share, do_raise\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"18d1a3e8_97c9d584","line":63,"range":{"start_line":63,"start_character":12,"end_line":63,"end_character":17},"updated":"2024-05-28 09:13:06.000000000","message":"if this share\u0027s status is available. and user is non-admin.\ni think will return not found. so we need to check share\u0027s status before check policy.","commit_id":"ad77749696a0d1f6e6f601610b8a776bc084884d"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"803767955a1248e2ad18f07db26fa26d28b91a6b","unresolved":false,"context_lines":[{"line_number":60,"context_line":"        context \u003d req.environ[\u0027manila.context\u0027]"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":"        try:"},{"line_number":63,"context_line":"            share \u003d self.share_api.get(context, id)"},{"line_number":64,"context_line":"            policy_str \u003d \"list_shares_in_deferred_deletion_states\""},{"line_number":65,"context_line":"            authorized \u003d policy.check_policy("},{"line_number":66,"context_line":"                context, \u0027share\u0027, policy_str, share, do_raise\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6e7ad8e6_b65e5aa5","line":63,"range":{"start_line":63,"start_character":12,"end_line":63,"end_character":17},"in_reply_to":"18d1a3e8_97c9d584","updated":"2024-05-28 10:02:09.000000000","message":"somehow it(openstack share show) was working, but you are correct.. i.e. status check is necessary","commit_id":"ad77749696a0d1f6e6f601610b8a776bc084884d"},{"author":{"_account_id":29632,"name":"Carlos Eduardo","email":"ces.eduardo98@gmail.com","username":"silvacarlos"},"change_message_id":"88f79acc55688f9ee8f287e766daa278bdeaeb80","unresolved":true,"context_lines":[{"line_number":68,"context_line":"                authorized \u003d policy.check_policy("},{"line_number":69,"context_line":"                    context, \u0027share\u0027, policy_str, share, do_raise\u003dFalse)"},{"line_number":70,"context_line":"                if not authorized:"},{"line_number":71,"context_line":"                    raise exception.NotFound()"},{"line_number":72,"context_line":"        except exception.NotFound:"},{"line_number":73,"context_line":"            raise exc.HTTPNotFound()"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"0582bbd6_747a8b4b","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":46},"updated":"2024-05-28 13:49:36.000000000","message":"Unsure if not found would be the best thing to do here, but I agree that we should do something with it.\nMaybe add a log and change the status to something that the user could see? Like if it\u0027s not authorized, change status_deferred_deleting to deleting and the same for error deferred deleting?\nLet\u0027s collect some more thoughts on this though","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"},{"author":{"_account_id":30407,"name":"haixin","email":"haixin_haixin@qq.com","username":"haixin"},"change_message_id":"e2c80c32898a18914524d07af7682b24e1ee529e","unresolved":true,"context_lines":[{"line_number":68,"context_line":"                authorized \u003d policy.check_policy("},{"line_number":69,"context_line":"                    context, \u0027share\u0027, policy_str, share, do_raise\u003dFalse)"},{"line_number":70,"context_line":"                if not authorized:"},{"line_number":71,"context_line":"                    raise exception.NotFound()"},{"line_number":72,"context_line":"        except exception.NotFound:"},{"line_number":73,"context_line":"            raise exc.HTTPNotFound()"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"4c1e40d4_62809fe3","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":46},"in_reply_to":"0582bbd6_747a8b4b","updated":"2024-05-29 01:13:42.000000000","message":"i think return not found to non-admin user is ok. Otherwise, for non-administrators, the effect of quick deletion will not be achieved.As for delaying the deletion of the faulty share, leave it to the administrator to manage.\n\nAnother suggestion:\nBetter move this logic to manila/share/api.py def get() function.\njust like to check whether the share is public.","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"33cd2e9b17353bed0d5ba9e0e10225cba23e2bf1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"                authorized \u003d policy.check_policy("},{"line_number":69,"context_line":"                    context, \u0027share\u0027, policy_str, share, do_raise\u003dFalse)"},{"line_number":70,"context_line":"                if not authorized:"},{"line_number":71,"context_line":"                    raise exception.NotFound()"},{"line_number":72,"context_line":"        except exception.NotFound:"},{"line_number":73,"context_line":"            raise exc.HTTPNotFound()"},{"line_number":74,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"82f51b52_0c6277dd","line":71,"range":{"start_line":71,"start_character":20,"end_line":71,"end_character":46},"in_reply_to":"4c1e40d4_62809fe3","updated":"2024-05-29 08:37:12.000000000","message":"Done","commit_id":"48e34f444daa6a6212d20b52eb0cbe6727d42834"}],"manila/tests/share/test_api.py":[{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba0d4b6d3e1651794c0333eb41649d764b132977","unresolved":true,"context_lines":[{"line_number":2682,"context_line":"        with mock.patch.object(db_api, \u0027share_snapshot_get\u0027,"},{"line_number":2683,"context_line":"                               mock.Mock(return_value\u003dfake_get_snap)):"},{"line_number":2684,"context_line":"            self.mock_object("},{"line_number":2685,"context_line":"                policy, \u0027check_policy\u0027, mock.Mock(return_value\u003dFalse))"},{"line_number":2686,"context_line":"            self.assertRaises(exception.NotFound, self.api.get_snapshot,"},{"line_number":2687,"context_line":"                              self.context, \u0027fakeid\u0027)"},{"line_number":2688,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"07dce866_c3b34e17","line":2685,"range":{"start_line":2685,"start_character":41,"end_line":2685,"end_character":69},"updated":"2024-05-30 14:31:35.000000000","message":"there are two policy checks in the code; doing this as a return_value will bail after the first check.. so please use side_effect instead and return [True, False] - meaning, you have permissions to list this snapshot","commit_id":"97bc13015855d3b014d54a68f9e4a55eee4adb54"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"8947014ac4bf690a0344fe50f3d1c0d5a662f685","unresolved":false,"context_lines":[{"line_number":2682,"context_line":"        with mock.patch.object(db_api, \u0027share_snapshot_get\u0027,"},{"line_number":2683,"context_line":"                               mock.Mock(return_value\u003dfake_get_snap)):"},{"line_number":2684,"context_line":"            self.mock_object("},{"line_number":2685,"context_line":"                policy, \u0027check_policy\u0027, mock.Mock(return_value\u003dFalse))"},{"line_number":2686,"context_line":"            self.assertRaises(exception.NotFound, self.api.get_snapshot,"},{"line_number":2687,"context_line":"                              self.context, \u0027fakeid\u0027)"},{"line_number":2688,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7cb7fed3_3a38c1ba","line":2685,"range":{"start_line":2685,"start_character":41,"end_line":2685,"end_character":69},"in_reply_to":"07dce866_c3b34e17","updated":"2024-05-30 14:46:04.000000000","message":"Done","commit_id":"97bc13015855d3b014d54a68f9e4a55eee4adb54"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"ba0d4b6d3e1651794c0333eb41649d764b132977","unresolved":true,"context_lines":[{"line_number":2940,"context_line":"                         mock.Mock(return_value\u003drv))"},{"line_number":2941,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_1\u0027, is_admin\u003dFalse)"},{"line_number":2942,"context_line":"        self.mock_object("},{"line_number":2943,"context_line":"            policy, \u0027check_policy\u0027, mock.Mock(return_value\u003dFalse))"},{"line_number":2944,"context_line":""},{"line_number":2945,"context_line":"        self.assertRaises("},{"line_number":2946,"context_line":"            exception.NotFound,"}],"source_content_type":"text/x-python","patch_set":5,"id":"5df911b8_8741322b","line":2943,"range":{"start_line":2943,"start_character":36,"end_line":2943,"end_character":66},"updated":"2024-05-30 14:31:35.000000000","message":"same comment as above","commit_id":"97bc13015855d3b014d54a68f9e4a55eee4adb54"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"8947014ac4bf690a0344fe50f3d1c0d5a662f685","unresolved":false,"context_lines":[{"line_number":2940,"context_line":"                         mock.Mock(return_value\u003drv))"},{"line_number":2941,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_1\u0027, is_admin\u003dFalse)"},{"line_number":2942,"context_line":"        self.mock_object("},{"line_number":2943,"context_line":"            policy, \u0027check_policy\u0027, mock.Mock(return_value\u003dFalse))"},{"line_number":2944,"context_line":""},{"line_number":2945,"context_line":"        self.assertRaises("},{"line_number":2946,"context_line":"            exception.NotFound,"}],"source_content_type":"text/x-python","patch_set":5,"id":"100829d9_ee247c84","line":2943,"range":{"start_line":2943,"start_character":36,"end_line":2943,"end_character":66},"in_reply_to":"5df911b8_8741322b","updated":"2024-05-30 14:46:04.000000000","message":"Done","commit_id":"97bc13015855d3b014d54a68f9e4a55eee4adb54"},{"author":{"_account_id":16643,"name":"Goutham Pacha Ravi","email":"gouthampravi@gmail.com","username":"gouthamr"},"change_message_id":"204310704dffb9dc73118b3e3373be1cb32e45ce","unresolved":true,"context_lines":[{"line_number":2940,"context_line":"                         mock.Mock(return_value\u003drv))"},{"line_number":2941,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_1\u0027, is_admin\u003dFalse)"},{"line_number":2942,"context_line":"        self.mock_object("},{"line_number":2943,"context_line":"            policy, \u0027check_policy\u0027, mock.Mock(side_effect\u003d[False, False]))"},{"line_number":2944,"context_line":""},{"line_number":2945,"context_line":"        self.assertRaises("},{"line_number":2946,"context_line":"            exception.NotFound,"}],"source_content_type":"text/x-python","patch_set":6,"id":"17638d37_897ec9ea","line":2943,"range":{"start_line":2943,"start_character":59,"end_line":2943,"end_character":64},"updated":"2024-05-30 22:03:21.000000000","message":"shouldn\u0027t this be True, False to bail out in the second policy check?","commit_id":"ef03cc9d08d4e7a5928a5265b894f4eb6206b8a9"},{"author":{"_account_id":32919,"name":"kiran pawar","display_name":"Kiran Pawar","email":"kinpaa@gmail.com","username":"kpdev"},"change_message_id":"100600adfc63cb1a373be17f037de842c1c54a1f","unresolved":false,"context_lines":[{"line_number":2940,"context_line":"                         mock.Mock(return_value\u003drv))"},{"line_number":2941,"context_line":"        ctx \u003d context.RequestContext(\u0027fake_uid\u0027, \u0027fake_pid_1\u0027, is_admin\u003dFalse)"},{"line_number":2942,"context_line":"        self.mock_object("},{"line_number":2943,"context_line":"            policy, \u0027check_policy\u0027, mock.Mock(side_effect\u003d[False, False]))"},{"line_number":2944,"context_line":""},{"line_number":2945,"context_line":"        self.assertRaises("},{"line_number":2946,"context_line":"            exception.NotFound,"}],"source_content_type":"text/x-python","patch_set":6,"id":"6ee34b59_3c8c605a","line":2943,"range":{"start_line":2943,"start_character":59,"end_line":2943,"end_character":64},"in_reply_to":"17638d37_897ec9ea","updated":"2024-05-31 10:30:51.000000000","message":"updated.","commit_id":"ef03cc9d08d4e7a5928a5265b894f4eb6206b8a9"}]}
