)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"76999812164ce703319c0bc705e78f50acf11afd","unresolved":false,"context_lines":[{"line_number":10,"context_line":"was \"None\" -- this raised a TypeError that was misleading."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch refactors the original functions so that the applicable error"},{"line_number":13,"context_line":"messages are displayed."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie75fc7c0ee2bec57f5410b07e967d3903f9789d5"},{"line_number":16,"context_line":"Co-Authored-By: Brad Behle \u003cbehle@us.ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_2aba5de2","line":13,"updated":"2015-08-26 21:54:27.000000000","message":"Link to original patch to fix this bug ?","commit_id":"aabcb4cb9102b872caa695406fd7b6e4efac05f7"},{"author":{"_account_id":17096,"name":"Aditi Rajagopal","email":"arajagopal@us.ibm.com","username":"aditirajagopal"},"change_message_id":"c06b0f92b786bab9464e9c30b5872785c9e94ab7","unresolved":false,"context_lines":[{"line_number":10,"context_line":"was \"None\" -- this raised a TypeError that was misleading."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"This patch refactors the original functions so that the applicable error"},{"line_number":13,"context_line":"messages are displayed."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: Ie75fc7c0ee2bec57f5410b07e967d3903f9789d5"},{"line_number":16,"context_line":"Co-Authored-By: Brad Behle \u003cbehle@us.ibm.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"da20952f_2a957de3","line":13,"in_reply_to":"da20952f_2aba5de2","updated":"2015-08-26 22:07:18.000000000","message":"Done","commit_id":"aabcb4cb9102b872caa695406fd7b6e4efac05f7"}],"neutron/api/v2/attributes.py":[{"author":{"_account_id":748,"name":"Armando Migliaccio","email":"armamig@gmail.com","username":"armando-migliaccio"},"change_message_id":"ed572b09cf5a617a64db0c76170a872d94463991","unresolved":false,"context_lines":[{"line_number":167,"context_line":""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def _validate_mac_address(data, valid_values\u003dNone):"},{"line_number":170,"context_line":"    if data is None:"},{"line_number":171,"context_line":"        return \"MAC Address cannot be null\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_6a34d5dd","line":170,"updated":"2015-08-26 21:46:11.000000000","message":"Just do:\n\n  if data and re.search(r\u0027\\s\u0027, data):\n\non line 162.\n\nIt\u0027s gonna be cleaner and you should get the error:\n\n  \u0027None is not a valid MAC address\u0027\n\nwhich is just as clear.","commit_id":"aabcb4cb9102b872caa695406fd7b6e4efac05f7"},{"author":{"_account_id":9970,"name":"John Kasperski","email":"jckasper@linux.vnet.ibm.com","username":"jckasper"},"change_message_id":"76999812164ce703319c0bc705e78f50acf11afd","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def _validate_mac_address(data, valid_values\u003dNone):"},{"line_number":170,"context_line":"    if data is None:"},{"line_number":171,"context_line":"        return \"MAC Address cannot be null\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    try:"},{"line_number":174,"context_line":"        valid_mac \u003d netaddr.valid_mac(_validate_no_whitespace(data))"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_2ad33d3a","line":171,"updated":"2015-08-26 21:54:27.000000000","message":"Shouldn\u0027t this message be translated with _(\" ....\")","commit_id":"aabcb4cb9102b872caa695406fd7b6e4efac05f7"},{"author":{"_account_id":17096,"name":"Aditi Rajagopal","email":"arajagopal@us.ibm.com","username":"aditirajagopal"},"change_message_id":"c06b0f92b786bab9464e9c30b5872785c9e94ab7","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def _validate_mac_address(data, valid_values\u003dNone):"},{"line_number":170,"context_line":"    if data is None:"},{"line_number":171,"context_line":"        return \"MAC Address cannot be null\""},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    try:"},{"line_number":174,"context_line":"        valid_mac \u003d netaddr.valid_mac(_validate_no_whitespace(data))"}],"source_content_type":"text/x-python","patch_set":1,"id":"da20952f_4a9a3116","line":171,"in_reply_to":"da20952f_2ad33d3a","updated":"2015-08-26 22:07:18.000000000","message":"Done","commit_id":"aabcb4cb9102b872caa695406fd7b6e4efac05f7"},{"author":{"_account_id":11343,"name":"Gal Sagie","email":"gal.sagie@gmail.com","username":"GalSagie"},"change_message_id":"ede73d6f2e3238d643a302210d71b841bb09818f","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    # raises AttributeError if data is None."},{"line_number":181,"context_line":"    if not valid_mac:"},{"line_number":182,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is not a valid MAC address\") % data"},{"line_number":183,"context_line":"        LOG.debug(msg)"},{"line_number":184,"context_line":"        return msg"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_8c9781eb","side":"PARENT","line":183,"updated":"2015-08-29 08:58:24.000000000","message":"Not sure why you remove this debug message","commit_id":"381cac9139096bfef49952f3fd67e19451160b61"},{"author":{"_account_id":17096,"name":"Aditi Rajagopal","email":"arajagopal@us.ibm.com","username":"aditirajagopal"},"change_message_id":"683c0cd48cd2b81b80f297c80b074e182b5aee72","unresolved":false,"context_lines":[{"line_number":180,"context_line":"    # raises AttributeError if data is None."},{"line_number":181,"context_line":"    if not valid_mac:"},{"line_number":182,"context_line":"        msg \u003d _(\"\u0027%s\u0027 is not a valid MAC address\") % data"},{"line_number":183,"context_line":"        LOG.debug(msg)"},{"line_number":184,"context_line":"        return msg"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_2ce9ab7f","side":"PARENT","line":183,"in_reply_to":"da20952f_8c9781eb","updated":"2015-09-10 22:06:59.000000000","message":"Made this change based on the abandoned change listed in the commit message. Take a look at the comments here - https://review.openstack.org/#/c/181282/2..4/neutron/api/v2/attributes.py","commit_id":"381cac9139096bfef49952f3fd67e19451160b61"},{"author":{"_account_id":16053,"name":"Pengtao Huang","email":"huangpengtao@huawei.com","username":"huangpengtao"},"change_message_id":"58986851a760cdfa090e8c4fa62b8786c05ad430","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"def _validate_no_whitespace(data):"},{"line_number":161,"context_line":"    \"\"\"Validates that input has no whitespace.\"\"\""},{"line_number":162,"context_line":"    if data and re.search(r\u0027\\s\u0027, data):"},{"line_number":163,"context_line":"        msg \u003d _(\"\u0027%s\u0027 contains whitespace\") % data"},{"line_number":164,"context_line":"        LOG.debug(msg)"},{"line_number":165,"context_line":"        raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_afa429b9","line":162,"updated":"2015-09-09 00:55:40.000000000","message":"if data if \u0027\u0027,it also will exit,do you think it is useful to add data?","commit_id":"ecb7ec59f727915c0aecf09a88190e39d84648d2"},{"author":{"_account_id":17096,"name":"Aditi Rajagopal","email":"arajagopal@us.ibm.com","username":"aditirajagopal"},"change_message_id":"683c0cd48cd2b81b80f297c80b074e182b5aee72","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"def _validate_no_whitespace(data):"},{"line_number":161,"context_line":"    \"\"\"Validates that input has no whitespace.\"\"\""},{"line_number":162,"context_line":"    if data and re.search(r\u0027\\s\u0027, data):"},{"line_number":163,"context_line":"        msg \u003d _(\"\u0027%s\u0027 contains whitespace\") % data"},{"line_number":164,"context_line":"        LOG.debug(msg)"},{"line_number":165,"context_line":"        raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_ecf5f382","line":162,"in_reply_to":"da20952f_afa429b9","updated":"2015-09-10 22:06:59.000000000","message":"I don\u0027t understand what you are suggesting....can you elaborate?","commit_id":"ecb7ec59f727915c0aecf09a88190e39d84648d2"},{"author":{"_account_id":8124,"name":"cbrandily","email":"zzelle@gmail.com","username":"cbrandily"},"change_message_id":"b8d4a93a1440448effe393f4be4babeba0c04a3d","unresolved":false,"context_lines":[{"line_number":159,"context_line":""},{"line_number":160,"context_line":"def _validate_no_whitespace(data):"},{"line_number":161,"context_line":"    \"\"\"Validates that input has no whitespace.\"\"\""},{"line_number":162,"context_line":"    if data and re.search(r\u0027\\s\u0027, data):"},{"line_number":163,"context_line":"        msg \u003d _(\"\u0027%s\u0027 contains whitespace\") % data"},{"line_number":164,"context_line":"        LOG.debug(msg)"},{"line_number":165,"context_line":"        raise n_exc.InvalidInput(error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_cfcdb487","line":162,"in_reply_to":"da20952f_afa429b9","updated":"2015-09-09 19:54:01.000000000","message":"You should explain why you can perform such modification ... as it\u0027s used by multiple checkers","commit_id":"ecb7ec59f727915c0aecf09a88190e39d84648d2"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"03d4c4ef385f9632276cc33a42129c41f49b9bcb","unresolved":false,"context_lines":[{"line_number":162,"context_line":"    if data and re.search(r\u0027\\s\u0027, data):"},{"line_number":163,"context_line":"        msg \u003d _(\"\u0027%s\u0027 contains whitespace\") % data"},{"line_number":164,"context_line":"        LOG.debug(msg)"},{"line_number":165,"context_line":"        raise n_exc.InvalidInput(error_message\u003dmsg)"},{"line_number":166,"context_line":"    return data"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_db76e33e","line":165,"updated":"2015-09-09 16:20:06.000000000","message":"The error message is not used, so you could just log the whitespace message (without i18n translation), and then raise the exception w/o a message.","commit_id":"ecb7ec59f727915c0aecf09a88190e39d84648d2"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"03d4c4ef385f9632276cc33a42129c41f49b9bcb","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"def _validate_mac_address(data, valid_values\u003dNone):"},{"line_number":170,"context_line":"    try:"},{"line_number":171,"context_line":"        valid_mac \u003d netaddr.valid_mac(_validate_no_whitespace(data))"},{"line_number":172,"context_line":"    except Exception:"},{"line_number":173,"context_line":"        valid_mac \u003d False"},{"line_number":174,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"da20952f_9becebbc","line":171,"updated":"2015-09-09 16:20:06.000000000","message":"If you want to save the msg from _validate_no_whitespace, you could have the method return a msg (or None if no whitespace) and test that before:\n\n    msg \u003d _validate_no_whitespace(data)\n    if msg:\n        return msg\n\n    try:\n        valid_mac \u003d netaddr.valid_mac(data)\n    except ...","commit_id":"ecb7ec59f727915c0aecf09a88190e39d84648d2"}]}
