)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e5524e4d884c1268dcb16512a7451e6ac6740c2a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"71ee5a89_c98f0b53","updated":"2023-04-14 12:48:02.000000000","message":"Tushar, thanks for picking this up.  Have you been able to reproduce the bug?  I\u0027m not entirely convinced that it\u0027s not some kind of configuration error.  Also, see comments inline.","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"880d9ef6f02d61874b181748c32e1a95899b6e1b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"2aa20818_d28c4134","updated":"2023-04-19 12:16:20.000000000","message":"Thanks for working on this.  See comment inline.","commit_id":"8d85370a4bd3410d71e53a47a1b52b2f74f93f7e"}],"cinder/api/v3/messages.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e5524e4d884c1268dcb16512a7451e6ac6740c2a","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":71,"context_line":"        message \u003d self.message_api.get(context, id)"},{"line_number":72,"context_line":"        context.authorize(policy.DELETE_POLICY, target_obj\u003dmessage)"},{"line_number":73,"context_line":"        self.message_api.delete(context, message)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return webob.Response(status_int\u003dHTTPStatus.NO_CONTENT)"}],"source_content_type":"text/x-python","patch_set":4,"id":"4362114f_88a71b45","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":67},"updated":"2023-04-14 12:48:02.000000000","message":"A user with only a \u0027reader\u0027 role should raise a PolicyNotAuthorized exception here before the message_api is even called.","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"adced9f4655dba8e85739ddcd49d2deb66c8ba52","unresolved":true,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":71,"context_line":"        message \u003d self.message_api.get(context, id)"},{"line_number":72,"context_line":"        context.authorize(policy.DELETE_POLICY, target_obj\u003dmessage)"},{"line_number":73,"context_line":"        self.message_api.delete(context, message)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return webob.Response(status_int\u003dHTTPStatus.NO_CONTENT)"}],"source_content_type":"text/x-python","patch_set":4,"id":"e39fb6c0_4319b20b","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":67},"in_reply_to":"4362114f_88a71b45","updated":"2023-04-17 11:13:04.000000000","message":"i agree with your point it could be a configuration error but i think we should able to throw exception and suggest user to check policy configuration and yes see this : https://docs.openstack.org/cinder/latest/configuration/block-storage/samples/policy.yaml.html#policy-file  \n\"message:delete\":\"rule:admin_or_owner\" has been deprecated  \ni\u0027ve also check there https://github.com/openstack/cinder/blob/master/cinder/tests/unit/policy.yaml   the project_reader config is missing","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"c0137dbd94f5ff87b58ca469b22e41bc3d3938b4","unresolved":false,"context_lines":[{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":71,"context_line":"        message \u003d self.message_api.get(context, id)"},{"line_number":72,"context_line":"        context.authorize(policy.DELETE_POLICY, target_obj\u003dmessage)"},{"line_number":73,"context_line":"        self.message_api.delete(context, message)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"        return webob.Response(status_int\u003dHTTPStatus.NO_CONTENT)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3892c61f_7a8e6a9c","line":72,"range":{"start_line":72,"start_character":8,"end_line":72,"end_character":67},"in_reply_to":"e39fb6c0_4319b20b","updated":"2023-04-17 11:26:29.000000000","message":"Done","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"880d9ef6f02d61874b181748c32e1a95899b6e1b","unresolved":true,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"        # Not found exception will be handled at the wsgi level"},{"line_number":72,"context_line":"        message \u003d self.message_api.get(context, id)"},{"line_number":73,"context_line":"        context.authorize(policy.DELETE_POLICY, target_obj\u003dmessage)"},{"line_number":74,"context_line":"        # We add readonly metadata if it doesn\u0027t already exist"},{"line_number":75,"context_line":"        readonly \u003d message"},{"line_number":76,"context_line":"        if readonly \u003d\u003d \u0027True\u0027:"}],"source_content_type":"text/x-python","patch_set":9,"id":"87580a7f_78d3d265","line":73,"range":{"start_line":73,"start_character":8,"end_line":73,"end_character":67},"updated":"2023-04-19 12:16:20.000000000","message":"We need to figure out why this isn\u0027t raising an exception when the user has only the reader role (i.e., the user doesn\u0027t have either of the \u0027admin\u0027 or \u0027member\u0027 roles).  I don\u0027t think you need to introduce a new exception or check for this.  There\u0027s a problem either with the policy definition or the target_obj we\u0027re passing to authorize().","commit_id":"8d85370a4bd3410d71e53a47a1b52b2f74f93f7e"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"3d07fa4fe4f102cb1aa715379d981552923c33ce","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        message \u003d self.message_api.get(context, id)"},{"line_number":73,"context_line":"        context.authorize(policy.DELETE_POLICY, target_obj\u003dmessage)"},{"line_number":74,"context_line":"        # We add readonly metadata if it doesn\u0027t already exist"},{"line_number":75,"context_line":"        readonly \u003d message"},{"line_number":76,"context_line":"        if readonly \u003d\u003d \u0027True\u0027:"},{"line_number":77,"context_line":"            raise exception.InvalidMessageDeleteRequest(context, id)"},{"line_number":78,"context_line":"        self.message_api.delete(context, message)"}],"source_content_type":"text/x-python","patch_set":9,"id":"4a6fe0ae_c0084bfe","line":75,"updated":"2023-05-24 16:27:59.000000000","message":"This line just seems confusing -- message is from message_api.get(), why are we expecting it to equal \u0027True\u0027?","commit_id":"8d85370a4bd3410d71e53a47a1b52b2f74f93f7e"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"7f1af66f599a84f7e5bc216a01efcf37191effde","unresolved":true,"context_lines":[{"line_number":72,"context_line":"        message \u003d self.message_api.get(context, id)"},{"line_number":73,"context_line":"        context.authorize(policy.DELETE_POLICY, target_obj\u003dmessage)"},{"line_number":74,"context_line":"        # We add readonly metadata if it doesn\u0027t already exist"},{"line_number":75,"context_line":"        readonly \u003d message"},{"line_number":76,"context_line":"        if readonly \u003d\u003d \u0027True\u0027:"},{"line_number":77,"context_line":"            raise exception.InvalidMessageDeleteRequest(context, id)"},{"line_number":78,"context_line":"        self.message_api.delete(context, message)"}],"source_content_type":"text/x-python","patch_set":9,"id":"74781fd7_d2d92e6e","line":75,"in_reply_to":"4a6fe0ae_c0084bfe","updated":"2023-05-25 10:26:13.000000000","message":"reworking on this will update","commit_id":"8d85370a4bd3410d71e53a47a1b52b2f74f93f7e"}],"cinder/message/api.py":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"e5524e4d884c1268dcb16512a7451e6ac6740c2a","unresolved":true,"context_lines":[{"line_number":170,"context_line":"                                                     volume,"},{"line_number":171,"context_line":"                                                     {\u0027readonly\u0027: \u0027True\u0027},"},{"line_number":172,"context_line":"                                                     update\u003dTrue)[\u0027readonly\u0027]"},{"line_number":173,"context_line":"        if readonly \u003d\u003d \u0027True\u0027 and mode !\u003d \u0027ro\u0027:"},{"line_number":174,"context_line":"            raise exception.InvalidMessageDeleteRequest(ctx, id)"},{"line_number":175,"context_line":"        else: "},{"line_number":176,"context_line":"            return self.db.message_destroy(ctx, id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"cf647931_701a744e","line":173,"range":{"start_line":173,"start_character":34,"end_line":173,"end_character":38},"updated":"2023-04-14 12:48:02.000000000","message":"Where is this coming from?  (But more importantly, see my comment in api/v3/messages.py ... I don\u0027t think this is the correct place to do the fix.)","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"662da20181acc1069e3ec9a9e8f30dc3a4d5688e","unresolved":true,"context_lines":[{"line_number":170,"context_line":"                                                     volume,"},{"line_number":171,"context_line":"                                                     {\u0027readonly\u0027: \u0027True\u0027},"},{"line_number":172,"context_line":"                                                     update\u003dTrue)[\u0027readonly\u0027]"},{"line_number":173,"context_line":"        if readonly \u003d\u003d \u0027True\u0027 and mode !\u003d \u0027ro\u0027:"},{"line_number":174,"context_line":"            raise exception.InvalidMessageDeleteRequest(ctx, id)"},{"line_number":175,"context_line":"        else: "},{"line_number":176,"context_line":"            return self.db.message_destroy(ctx, id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"fd4fe9cc_bfe85e54","line":173,"range":{"start_line":173,"start_character":34,"end_line":173,"end_character":38},"in_reply_to":"cf647931_701a744e","updated":"2023-04-17 10:41:58.000000000","message":"we have check readonly mode in volume attach  here :  https://github.com/openstack/cinder/blob/78fac2960d28e97f42454bb5f385b46fbae23a3c/cinder/volume/api.py#L841","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"},{"author":{"_account_id":30615,"name":"Tushar Trambak Gite","email":"tushargite96@gmail.com","username":"tushargite96"},"change_message_id":"60923092d561d945a549a0717a94b9261cf37c7a","unresolved":false,"context_lines":[{"line_number":170,"context_line":"                                                     volume,"},{"line_number":171,"context_line":"                                                     {\u0027readonly\u0027: \u0027True\u0027},"},{"line_number":172,"context_line":"                                                     update\u003dTrue)[\u0027readonly\u0027]"},{"line_number":173,"context_line":"        if readonly \u003d\u003d \u0027True\u0027 and mode !\u003d \u0027ro\u0027:"},{"line_number":174,"context_line":"            raise exception.InvalidMessageDeleteRequest(ctx, id)"},{"line_number":175,"context_line":"        else: "},{"line_number":176,"context_line":"            return self.db.message_destroy(ctx, id)"}],"source_content_type":"text/x-python","patch_set":4,"id":"b124036a_00772d62","line":173,"range":{"start_line":173,"start_character":34,"end_line":173,"end_character":38},"in_reply_to":"fd4fe9cc_bfe85e54","updated":"2023-04-17 10:45:11.000000000","message":"Done","commit_id":"5a7718b9cd0f75a0d0ff68dfa3236b0bfd519d32"}]}
