)]}'
{"oslo/messaging/_drivers/common.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"95d4771a9cd53f272b7caaa7ee572477f48821aa","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        raise NotImplementedError()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"def _fix_passwords(d):"},{"line_number":165,"context_line":"    \"\"\"Sanitizes the password fields in the dictionary.\"\"\""},{"line_number":166,"context_line":"    for k in six.iterkeys(d):"},{"line_number":167,"context_line":"        if k.lower().find(\u0027password\u0027) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_7fb2f84c","line":164,"updated":"2014-10-07 16:26:33.000000000","message":"This function duplicates some of the logic of oslo.utils.strutils.mask_password. Can we combine them? Can we make the output the same by replacing \u0027\u003cSANITIZED\u003e\u0027 with \u0027***\u0027?","commit_id":"3746b108924d868f4ff3d92f320188aab1dda318"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"60b87657bdc26e358e8d4a3b3afa23656aff6a59","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        raise NotImplementedError()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"def _fix_passwords(d):"},{"line_number":165,"context_line":"    \"\"\"Sanitizes the password fields in the dictionary.\"\"\""},{"line_number":166,"context_line":"    for k in six.iterkeys(d):"},{"line_number":167,"context_line":"        if k.lower().find(\u0027password\u0027) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9aa7fdbe_91b45dd2","line":164,"in_reply_to":"baa201ad_277137a8","updated":"2014-10-22 09:00:53.000000000","message":"Done","commit_id":"3746b108924d868f4ff3d92f320188aab1dda318"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"f9d9c6c1bde106afd153b81e2e844443f3320229","unresolved":false,"context_lines":[{"line_number":161,"context_line":"        raise NotImplementedError()"},{"line_number":162,"context_line":""},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"def _fix_passwords(d):"},{"line_number":165,"context_line":"    \"\"\"Sanitizes the password fields in the dictionary.\"\"\""},{"line_number":166,"context_line":"    for k in six.iterkeys(d):"},{"line_number":167,"context_line":"        if k.lower().find(\u0027password\u0027) !\u003d -1:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baa201ad_277137a8","line":164,"in_reply_to":"baa201ad_7fb2f84c","updated":"2014-10-08 07:15:26.000000000","message":"Yes, oslo.utils.strutils.mask_password clearly do the same job.\n\nI have proposed https://review.openstack.org/126825 to add missing filter used in oslo.messaging.\n\nI will update the review when a new oslo.utils is released with this change.","commit_id":"3746b108924d868f4ff3d92f320188aab1dda318"},{"author":{"_account_id":8415,"name":"Denis M.","email":"lildee1991@gmail.com","username":"dmakogon"},"change_message_id":"99f2e43e238eadf05c6476edf90a5f362352d2ed","unresolved":false,"context_lines":[{"line_number":21,"context_line":"import traceback"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo.utils import strutils"},{"line_number":24,"context_line":"import six"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"from oslo import messaging"},{"line_number":27,"context_line":"from oslo.messaging._i18n import _"}],"source_content_type":"text/x-python","patch_set":4,"id":"7a8c0949_ef46d222","line":24,"updated":"2014-10-31 13:35:16.000000000","message":"imports not grouped correctly, see pep8 job log","commit_id":"20806bb1b3c7ebf2057de83c44393e5d312b065e"},{"author":{"_account_id":13777,"name":"Nicolas Trangez","email":"ikke@nicolast.be","username":"nicolast"},"change_message_id":"04634cf8ba8f54d02ab6be7ec9d99d4909f0c315","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def _safe_log(log_func, msg, msg_data):"},{"line_number":164,"context_line":"    \"\"\"Sanitizes the msg_data field before logging.\"\"\""},{"line_number":165,"context_line":"    return log_func(msg, strutils.mask_password(six.text_type(msg_data)))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def serialize_remote_exception(failure_info, log_failure\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_3cb92bcc","line":165,"updated":"2014-11-18 13:41:37.000000000","message":"`_fix_password` took a dict-like object as argument, and returned the same thing, so I assume `msg_data` is dict-like.\n\nOn the other hand, `mask_password` takes (and returns) a string, and `text_type` indeed turns things into strings (even if the input is no string):\n\n \u003e\u003e\u003e six.text_type({\u0027key\u0027: \u0027value\u0027})\n u\"{\u0027key\u0027: \u0027value\u0027}\"\n\nAs a result, this change also expects `log_func` to handle arguments of a different type than before (the second argument used to be something dict-like, now it\u0027s only a single string).\n\nIs this expected/intended?","commit_id":"5711f7c18aab6c26d9d83fbce921f16d4fa1a09b"},{"author":{"_account_id":13777,"name":"Nicolas Trangez","email":"ikke@nicolast.be","username":"nicolast"},"change_message_id":"c843ea07bf67662a54517a0e599d1e58d0b2ed4a","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def _safe_log(log_func, msg, msg_data):"},{"line_number":164,"context_line":"    \"\"\"Sanitizes the msg_data field before logging.\"\"\""},{"line_number":165,"context_line":"    return log_func(msg, strutils.mask_password(six.text_type(msg_data)))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def serialize_remote_exception(failure_info, log_failure\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_73b5a17c","line":165,"in_reply_to":"5a890539_33e079cc","updated":"2014-11-18 14:35:22.000000000","message":"Then I wonder why `_safe_log` is parametrized over `log_func` at all ;-)","commit_id":"5711f7c18aab6c26d9d83fbce921f16d4fa1a09b"},{"author":{"_account_id":2813,"name":"Mehdi Abaakouk","email":"sileht@sileht.net","username":"sileht"},"change_message_id":"c320db7c2c35ca81f1cc1b81958eaf17f262b151","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"def _safe_log(log_func, msg, msg_data):"},{"line_number":164,"context_line":"    \"\"\"Sanitizes the msg_data field before logging.\"\"\""},{"line_number":165,"context_line":"    return log_func(msg, strutils.mask_password(six.text_type(msg_data)))"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"def serialize_remote_exception(failure_info, log_failure\u003dTrue):"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a890539_33e079cc","line":165,"in_reply_to":"5a890539_3cb92bcc","updated":"2014-11-18 14:27:50.000000000","message":"Yes, this is the desired behavior, log_func is always LOG.debug with a \u0027%s\u0027 in \u0027msg\u0027, so the conversion to string is just done earlier","commit_id":"5711f7c18aab6c26d9d83fbce921f16d4fa1a09b"}],"requirements.txt":[{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"d4f1946ba6917ddb716d1c3540c67001ea719828","unresolved":false,"context_lines":[{"line_number":3,"context_line":"# process, which may cause wedges in the gate later."},{"line_number":4,"context_line":""},{"line_number":5,"context_line":"oslo.config\u003e\u003d1.4.0  # Apache-2.0"},{"line_number":6,"context_line":"oslo.utils\u003e\u003d1.1.0                       # Apache-2.0"},{"line_number":7,"context_line":"oslo.serialization\u003e\u003d1.0.0               # Apache-2.0"},{"line_number":8,"context_line":"oslo.i18n\u003e\u003d1.0.0  # Apache-2.0"},{"line_number":9,"context_line":"stevedore\u003e\u003d1.0.0  # Apache-2.0"}],"source_content_type":"text/plain","patch_set":3,"id":"9aa7fdbe_ecf3629d","line":6,"updated":"2014-10-29 10:46:59.000000000","message":"Diverges with py3 requirements.","commit_id":"54d1e14761f0650233d94efaccceb11bea79df5c"}]}
