)]}'
{"oslo_messaging/notify/_impl_log.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"f6ac6086630f150abf2f46350b43bfcf5d1b9981","unresolved":true,"context_lines":[{"line_number":39,"context_line":"                                                  message[\u0027event_type\u0027]))"},{"line_number":40,"context_line":"        method \u003d getattr(logger, priority.lower(), None)"},{"line_number":41,"context_line":"        if method:"},{"line_number":42,"context_line":"            method(jsonutils.dumps(strutils.mask_dict_password(message)))"},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            warnings.warn(\u0027Unable to log message as notify cannot find a \u0027"},{"line_number":45,"context_line":"                          \u0027logger with the priority specified \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"d091a37a_e0f0e93c","side":"PARENT","line":42,"updated":"2026-03-05 11:36:14.000000000","message":"Any reason we can\u0027t fix this in `strutils` itself?","commit_id":"ccba146a25ee195541444812c8fe26cc5173b6ce"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"84261bb96b207fd9cf85557e666be15942de055e","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                                                  message[\u0027event_type\u0027]))"},{"line_number":40,"context_line":"        method \u003d getattr(logger, priority.lower(), None)"},{"line_number":41,"context_line":"        if method:"},{"line_number":42,"context_line":"            method(jsonutils.dumps(strutils.mask_dict_password(message)))"},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            warnings.warn(\u0027Unable to log message as notify cannot find a \u0027"},{"line_number":45,"context_line":"                          \u0027logger with the priority specified \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"786b001a_ed56dee4","side":"PARENT","line":42,"in_reply_to":"17646997_24f6dbfe","updated":"2026-03-05 12:39:05.000000000","message":"It\u0027s a fair point, but I can\u0027t imagine there is a scenario where we *don\u0027t* want to mask passwords simply because they\u0027re within a nested structure. This sounds like a straight up bug to me at least.\n\nLet\u0027s discuss on the oslo.utils patch. I\u0027m going to mark this as -2 until/unless we decide that no, we actually want to do this here.","commit_id":"ccba146a25ee195541444812c8fe26cc5173b6ce"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"b5770d9ebc78479ad72229a804b98599aee5c1c4","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                                                  message[\u0027event_type\u0027]))"},{"line_number":40,"context_line":"        method \u003d getattr(logger, priority.lower(), None)"},{"line_number":41,"context_line":"        if method:"},{"line_number":42,"context_line":"            method(jsonutils.dumps(strutils.mask_dict_password(message)))"},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            warnings.warn(\u0027Unable to log message as notify cannot find a \u0027"},{"line_number":45,"context_line":"                          \u0027logger with the priority specified \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"ac87e1a6_3f076e61","side":"PARENT","line":42,"in_reply_to":"786b001a_ed56dee4","updated":"2026-03-05 12:41:30.000000000","message":"That\u0027s fair. It was just too obvious a bug that I assumed it was an intentional behaviour. I\u0027m preparing a patch now for strutils. Thanks!","commit_id":"ccba146a25ee195541444812c8fe26cc5173b6ce"},{"author":{"_account_id":36770,"name":"cid","display_name":"cid","email":"cid@gr-oss.io","username":"cidelight","status":"@gr-oss upstream: Doing good IRONIC things..."},"change_message_id":"cd161e3835734fcf6f259f5ee85bd1e3014d6211","unresolved":true,"context_lines":[{"line_number":39,"context_line":"                                                  message[\u0027event_type\u0027]))"},{"line_number":40,"context_line":"        method \u003d getattr(logger, priority.lower(), None)"},{"line_number":41,"context_line":"        if method:"},{"line_number":42,"context_line":"            method(jsonutils.dumps(strutils.mask_dict_password(message)))"},{"line_number":43,"context_line":"        else:"},{"line_number":44,"context_line":"            warnings.warn(\u0027Unable to log message as notify cannot find a \u0027"},{"line_number":45,"context_line":"                          \u0027logger with the priority specified \u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"17646997_24f6dbfe","side":"PARENT","line":42,"in_reply_to":"d091a37a_e0f0e93c","updated":"2026-03-05 12:35:48.000000000","message":"Mostly because of the ripple effect across projects. I guess I can push it down the stack and make it opt-in .i.e `mask_dict_password(..., deep\u003dTrue)`","commit_id":"ccba146a25ee195541444812c8fe26cc5173b6ce"}]}
