)]}'
{"cinder/volume/manager.py":[{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"17d043509a6247cddae9a97039a4491710a1681c","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        return True"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    if no_error:"},{"line_number":170,"context_line":"        LOG.info(\"Function call skipped because driver %s\""},{"line_number":171,"context_line":"                 \" doesn\u0027t support feature set %s\" %"},{"line_number":172,"context_line":"                 (drv, feature_class.__name__))"},{"line_number":173,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_e46598e1","line":170,"updated":"2015-02-11 15:41:36.000000000","message":"Please use: LOG.info(_LI()) to make it localizable.","commit_id":"af2802120890d83ac36c9e702eede76e7489c9a0"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"97b6018ba2f73d6031cf55a4988f785a38ef17a9","unresolved":false,"context_lines":[{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    if no_error:"},{"line_number":170,"context_line":"        LOG.info(\"Function call skipped because driver %s\""},{"line_number":171,"context_line":"                 \" doesn\u0027t support feature set %s\" %"},{"line_number":172,"context_line":"                 (drv, feature_class.__name__))"},{"line_number":173,"context_line":"        return False"},{"line_number":174,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_be79ec30","line":171,"updated":"2015-02-11 16:21:45.000000000","message":"Also use , instead of % to make formatting arguments and arg to the log call.\n\nLOG.info(_LI(\u0027...\u0027), args)","commit_id":"af2802120890d83ac36c9e702eede76e7489c9a0"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"f8bc15ed93a9c425e65930b3cb207ad98129d5f0","unresolved":false,"context_lines":[{"line_number":167,"context_line":"        return True"},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"    if no_error:"},{"line_number":170,"context_line":"        LOG.info(_LI(\"Function call skipped because driver %(drv)s\""},{"line_number":171,"context_line":"                 \" doesn\u0027t support feature set %(fs)s\") %"},{"line_number":172,"context_line":"                 {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__})"},{"line_number":173,"context_line":"        return False"}],"source_content_type":"text/x-python","patch_set":3,"id":"da86d52c_0118751d","line":170,"updated":"2015-02-13 14:11:09.000000000","message":"According to the Logging guidelines, please change % \u003d\u003e ,","commit_id":"72283c35c04653a62148e56eb5b2532e98cf4425"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"47b7023a5ddfa3b78fad829d2972a8ca5a7ba178","unresolved":false,"context_lines":[{"line_number":174,"context_line":""},{"line_number":175,"context_line":"    if no_error:"},{"line_number":176,"context_line":"        LOG.info(_LI(\"Function call skipped because driver %(drv)s\""},{"line_number":177,"context_line":"                 \" doesn\u0027t support feature set %(fs)s\"),"},{"line_number":178,"context_line":"                 {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__})"},{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_fa5cb04e","line":177,"updated":"2015-02-16 13:06:52.000000000","message":"Here is the correct usage of , instead of %.","commit_id":"8a338fc60abe66c3617108adace09df1dd1e0f2f"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"f3f607c57050def048b968e6fe04e70a250a6502","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"},{"line_number":181,"context_line":"        msg \u003d _LI(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\"), \\"},{"line_number":182,"context_line":"            {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__}"},{"line_number":183,"context_line":"        raise NotImplementedError(msg)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_a60ea4e3","line":182,"updated":"2015-02-16 12:26:59.000000000","message":"According to the Logging guidelines, it should be put down as:\nmsg \u003d _(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\") % {...}","commit_id":"8a338fc60abe66c3617108adace09df1dd1e0f2f"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"39f94c0e3a0227b108a6f8c08d0a07a4aa3f8fcb","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"},{"line_number":181,"context_line":"        msg \u003d _LI(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\"), \\"},{"line_number":182,"context_line":"            {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__}"},{"line_number":183,"context_line":"        raise NotImplementedError(msg)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_e4dfaf38","line":182,"in_reply_to":"da86d52c_7a49a08d","updated":"2015-02-16 15:13:48.000000000","message":"I see, thx for adding a link with the guideline.\nI hope I got it correct this time.","commit_id":"8a338fc60abe66c3617108adace09df1dd1e0f2f"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"7bbefa0a5fd036a2ee72770740472f54f0926d71","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"},{"line_number":181,"context_line":"        msg \u003d _LI(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\"), \\"},{"line_number":182,"context_line":"            {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__}"},{"line_number":183,"context_line":"        raise NotImplementedError(msg)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_3a756832","line":182,"in_reply_to":"da86d52c_862d2000","updated":"2015-02-16 13:04:09.000000000","message":"Change %\u003d\u003e, requires for logging formatting, for exception messages translation, please, follow guidelines: http://docs.openstack.org/developer/oslo.i18n/guidelines.html#examples","commit_id":"8a338fc60abe66c3617108adace09df1dd1e0f2f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"47b7023a5ddfa3b78fad829d2972a8ca5a7ba178","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"},{"line_number":181,"context_line":"        msg \u003d _LI(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\"), \\"},{"line_number":182,"context_line":"            {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__}"},{"line_number":183,"context_line":"        raise NotImplementedError(msg)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_7a49a08d","line":182,"in_reply_to":"da86d52c_862d2000","updated":"2015-02-16 13:06:52.000000000","message":"Not everything can or should be enforced with hacking checks.\n\nThe current comment is correct, regardless of the guidelines. You are assigning this to a variable, so you need to use the % to get it formatted. Otherwise I believe it will just make msg a tuple.\n\nIf this were a LOG call then it would be correct to use the comma. In that case the format variables are passed as additional arguments to the logger. The logger can then delay formatting the string only if the log level is actually set where it needs it.\n\nIn this case since it is being passed to an exception it should be _() around the string and % to cause the formatting to happen immediately.\n\nYou should also put the whole thing in () to avoid the use of \\ for line continuation.","commit_id":"8a338fc60abe66c3617108adace09df1dd1e0f2f"},{"author":{"_account_id":7872,"name":"Marc Koderer","email":"marc@koderer.com","username":"mkoderer"},"change_message_id":"e7b70e7f1ae8e7281f205e0c9736c314630107e6","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"},{"line_number":181,"context_line":"        msg \u003d _LI(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\"), \\"},{"line_number":182,"context_line":"            {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__}"},{"line_number":183,"context_line":"        raise NotImplementedError(msg)"},{"line_number":184,"context_line":""},{"line_number":185,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"da86d52c_862d2000","line":182,"in_reply_to":"da86d52c_a60ea4e3","updated":"2015-02-16 12:37:44.000000000","message":"Sorry, but if there is a guide line it must be checked in hacking.\nCould you please check your comment in patch set 3.. you suggest me change from \"%\" to \",\". Now you suggest me the opposite?","commit_id":"8a338fc60abe66c3617108adace09df1dd1e0f2f"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"76809601337c66c77cd7bfc9d39a0cf268402aaf","unresolved":false,"context_lines":[{"line_number":178,"context_line":"                 {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__})"},{"line_number":179,"context_line":"        return False"},{"line_number":180,"context_line":"    else:"},{"line_number":181,"context_line":"        msg \u003d (_LI(\"Driver %(drv)s doesn\u0027t support feature set %(fs)s\") %"},{"line_number":182,"context_line":"               {\u0027drv\u0027: drv, \u0027fs\u0027: feature_class.__name__})"},{"line_number":183,"context_line":"        raise NotImplementedError(msg)"},{"line_number":184,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da86d52c_a42db7ff","line":181,"updated":"2015-02-16 15:19:08.000000000","message":"This needs to be _(), not _LI(), since it is being used for an exception message. _LI() should only be used if the message is only going to LOG.info().","commit_id":"b34114f187f29c3ac2ba3aa54a786f4b40c76232"},{"author":{"_account_id":10263,"name":"Vilobh Meshram","email":"vilobhmm@yahoo-inc.com","username":"vilobhmm"},"change_message_id":"3d9e2cc109a846250d2d1d2df1d286757c85f7a0","unresolved":false,"context_lines":[{"line_number":164,"context_line":"def check_feature_set(drv, feature_class, no_error\u003dFalse):"},{"line_number":165,"context_line":"    \"\"\"Checks if given feature set is supported by the driver"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    :param drv: driver object"},{"line_number":168,"context_line":"    :param feature_class: the feature_class to check"},{"line_number":169,"context_line":"    :param no_error: just log if a call was skipped"},{"line_number":170,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":9,"id":"baa041b7_c7cf107e","line":167,"updated":"2015-04-03 01:11:33.000000000","message":"A better name for this variable would be preferred.","commit_id":"c430ec596ac296051281866f2803ed1ebbbbaa9b"}]}
