)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"40ce864387afec1cb1504fd28512b734842b6b40","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"3bff481f_6d5c36dc","updated":"2022-09-08 16:45:22.000000000","message":"Ugh, it seems the unit test failures are due to the changes in oslo.db: https://lists.openstack.org/pipermail/openstack-discuss/2022-September/030317.html","commit_id":"f4c0ff7b695f289331b0452e3eaad60f68f975c5"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"991357598725dfc2c616990d517b3038b7cbb7d9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"66e8df4e_7a5b1bea","updated":"2022-09-08 17:19:44.000000000","message":"(forgot about docs previously)","commit_id":"908543fec6194276e8a199a32247ed3c475966fc"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"2683713c076cad9554600b56ee0ebc8166ee23d7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"3f8ec88e_9bb5f62e","updated":"2022-09-14 16:53:52.000000000","message":"Thanks for the update. I would like to merge this before RC1, I only have comments regarding the exception handling.","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"196505a7b2f9f79fdc1a0e9fca0b880cf3e451e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7b2c3f07_badeb372","in_reply_to":"3f8ec88e_9bb5f62e","updated":"2022-09-15 09:01:52.000000000","message":"Ack","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ebca5f413f2f9dfaf782e3766ec031f44fb78fa4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"db4c6b11_7809ce6d","updated":"2022-09-15 09:39:59.000000000","message":"Also improved code style a bit.","commit_id":"83f805eb72f5b34d54a8e9499ff595502410de09"},{"author":{"_account_id":29100,"name":"Jason Anderson","email":"jasonanderson@uchicago.edu","username":"jasonanderson"},"change_message_id":"fa3c0849fbbde496be8da197f4de069359a31a15","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fe93541c_4cd91627","updated":"2022-09-15 18:20:57.000000000","message":"Thank you for adding the tests, these are all good improvements.","commit_id":"83f805eb72f5b34d54a8e9499ff595502410de09"}],"blazar/enforcement/filters/external_service_filter.py":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"2683713c076cad9554600b56ee0ebc8166ee23d7","unresolved":true,"context_lines":[{"line_number":36,"context_line":"        return json.JSONEncoder.default(self, o)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class ExternalServiceUnsupportedHTTPResponse(exceptions.BlazarException):"},{"line_number":40,"context_line":"    code \u003d 400"},{"line_number":41,"context_line":"    msg_fmt \u003d _(\u0027External service enforcement filter returned a %(status)s \u0027"},{"line_number":42,"context_line":"                \u0027HTTP response. Only 204 and 403 responses are supported.\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class ExternalServiceUnsupportedDeniedResponse(exceptions.BlazarException):"},{"line_number":46,"context_line":"    code \u003d 400"},{"line_number":47,"context_line":"    msg_fmt \u003d _(\u0027External service enforcement filter returned a 403 HTTP \u0027"},{"line_number":48,"context_line":"                \u0027response %(response)s without a valid JSON dictionary \u0027"},{"line_number":49,"context_line":"                \u0027containing a \"message\" key.\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class ExternalServiceFilterException(exceptions.NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":3,"id":"06c46cb0_82546e22","side":"PARENT","line":49,"range":{"start_line":39,"start_character":0,"end_line":49,"end_character":46},"updated":"2022-09-14 16:53:52.000000000","message":"This was not exposed to end users, but only to operators through logs. This is because the API process filters some exceptions and returns a generic \"Internal Server Error\".","commit_id":"27206b2c047dbeb9cb61ae252eeb986170112bf1"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"196505a7b2f9f79fdc1a0e9fca0b880cf3e451e7","unresolved":false,"context_lines":[{"line_number":36,"context_line":"        return json.JSONEncoder.default(self, o)"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"class ExternalServiceUnsupportedHTTPResponse(exceptions.BlazarException):"},{"line_number":40,"context_line":"    code \u003d 400"},{"line_number":41,"context_line":"    msg_fmt \u003d _(\u0027External service enforcement filter returned a %(status)s \u0027"},{"line_number":42,"context_line":"                \u0027HTTP response. Only 204 and 403 responses are supported.\u0027)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class ExternalServiceUnsupportedDeniedResponse(exceptions.BlazarException):"},{"line_number":46,"context_line":"    code \u003d 400"},{"line_number":47,"context_line":"    msg_fmt \u003d _(\u0027External service enforcement filter returned a 403 HTTP \u0027"},{"line_number":48,"context_line":"                \u0027response %(response)s without a valid JSON dictionary \u0027"},{"line_number":49,"context_line":"                \u0027containing a \"message\" key.\u0027)"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class ExternalServiceFilterException(exceptions.NotAuthorized):"}],"source_content_type":"text/x-python","patch_set":3,"id":"40b8ceed_a5e0beb5","side":"PARENT","line":49,"range":{"start_line":39,"start_character":0,"end_line":49,"end_character":46},"in_reply_to":"06c46cb0_82546e22","updated":"2022-09-15 09:01:52.000000000","message":"Right you are here. See also the reply to the other comment.","commit_id":"27206b2c047dbeb9cb61ae252eeb986170112bf1"},{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"2683713c076cad9554600b56ee0ebc8166ee23d7","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    msg_fmt \u003d _(\u0027%(message)s\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class ExternalServiceFilterException(exceptions.BlazarException):"},{"line_number":48,"context_line":"    code \u003d 400"},{"line_number":49,"context_line":"    msg_fmt \u003d _(\u0027%(message)s\u0027)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"53303521_49e11f31","line":47,"range":{"start_line":47,"start_character":37,"end_line":47,"end_character":63},"updated":"2022-09-14 16:53:52.000000000","message":"You need to keep inheriting from exceptions.NotAuthorized so that the error message is passed to end users.","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"196505a7b2f9f79fdc1a0e9fca0b880cf3e451e7","unresolved":true,"context_lines":[{"line_number":44,"context_line":"    msg_fmt \u003d _(\u0027%(message)s\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class ExternalServiceFilterException(exceptions.BlazarException):"},{"line_number":48,"context_line":"    code \u003d 400"},{"line_number":49,"context_line":"    msg_fmt \u003d _(\u0027%(message)s\u0027)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"ba359a1e_725896f8","line":47,"range":{"start_line":47,"start_character":37,"end_line":47,"end_character":63},"in_reply_to":"53303521_49e11f31","updated":"2022-09-15 09:01:52.000000000","message":"I agree this is wrong now but your suggestion is not correct either. It is even more complicated (\u003d less obvious): https://opendev.org/openstack/blazar/src/commit/40f2f5d285c5067cb96468c499b7c28c9b938773/blazar/api/v1/utils.py#L95-L127\n\nAll in all, it depends on the location of the actual exception.\n\nI will fix it.","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"ebca5f413f2f9dfaf782e3766ec031f44fb78fa4","unresolved":false,"context_lines":[{"line_number":44,"context_line":"    msg_fmt \u003d _(\u0027%(message)s\u0027)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"class ExternalServiceFilterException(exceptions.BlazarException):"},{"line_number":48,"context_line":"    code \u003d 400"},{"line_number":49,"context_line":"    msg_fmt \u003d _(\u0027%(message)s\u0027)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"f4239a81_d5f8ea27","line":47,"range":{"start_line":47,"start_character":37,"end_line":47,"end_character":63},"in_reply_to":"ba359a1e_725896f8","updated":"2022-09-15 09:39:59.000000000","message":"Done","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"}],"doc/source/admin/usage-enforcement.rst":[{"author":{"_account_id":15197,"name":"Pierre Riteau","email":"pierre@stackhpc.com","username":"priteau","status":"StackHPC"},"change_message_id":"4e711fec835c6d32faab3bf846538cbc986f31ce","unresolved":false,"context_lines":[{"line_number":80,"context_line":".. sourcecode:: json"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"   {"},{"line_number":83,"context_line":"     \"message\": \"You shall not pass!\""},{"line_number":84,"context_line":"   }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"An example of data the external service will receive in a request body (do note"}],"source_content_type":"text/x-rst","patch_set":3,"id":"98bf7be8_c862aaad","line":83,"range":{"start_line":83,"start_character":16,"end_line":83,"end_character":37},"updated":"2022-09-14 16:58:48.000000000","message":"😎","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"},{"author":{"_account_id":30491,"name":"Radosław Piliszek","display_name":"Radek","email":"radek@piliszek.it","username":"yoctozepto","status":"self-employed techologist, collaborating mostly with 7bulls.com"},"change_message_id":"196505a7b2f9f79fdc1a0e9fca0b880cf3e451e7","unresolved":false,"context_lines":[{"line_number":80,"context_line":".. sourcecode:: json"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"   {"},{"line_number":83,"context_line":"     \"message\": \"You shall not pass!\""},{"line_number":84,"context_line":"   }"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"An example of data the external service will receive in a request body (do note"}],"source_content_type":"text/x-rst","patch_set":3,"id":"03176f7d_6118e05b","line":83,"range":{"start_line":83,"start_character":16,"end_line":83,"end_character":37},"in_reply_to":"98bf7be8_c862aaad","updated":"2022-09-15 09:01:52.000000000","message":"🧙","commit_id":"89d11e4a934ffc96ad157cc241451e30623c4eb3"}]}
