)]}'
{"nova/log.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"282f6a6c51fbf44208dbe6b9a2910cbc14430985","unresolved":false,"context_lines":[{"line_number":283,"context_line":"class PublishErrorsHandler(logging.Handler):"},{"line_number":284,"context_line":"    def emit(self, record):"},{"line_number":285,"context_line":"        if \u0027list_notifier_drivers\u0027 in FLAGS:"},{"line_number":286,"context_line":"            if \u0027nova.notifier.log_notifier\u0027 in  FLAGS.list_notifier_drivers:"},{"line_number":287,"context_line":"                return"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        nova.notifier.api.notify(\u0027nova.error.publisher\u0027, \u0027error_notification\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAADH%2F%2F%2Ft0%3D","line":286,"updated":"2011-12-29 16:12:01.000000000","message":"Extra space between \"in\" and \"FLAGS.list_notifier_drivers\"","commit_id":"066c82ba440aa2b1f864ba9898fe4ab7e9a3ca7a"},{"author":{"_account_id":1794,"name":"Donald Ngo","email":"donald.ngo@hp.com","username":"donald-ngo"},"change_message_id":"0e807fdae4697b24cfcfc4bf5d1d1fb4392fe69f","unresolved":false,"context_lines":[{"line_number":283,"context_line":"class PublishErrorsHandler(logging.Handler):"},{"line_number":284,"context_line":"    def emit(self, record):"},{"line_number":285,"context_line":"        if \u0027list_notifier_drivers\u0027 in FLAGS:"},{"line_number":286,"context_line":"            if \u0027nova.notifier.log_notifier\u0027 in  FLAGS.list_notifier_drivers:"},{"line_number":287,"context_line":"                return"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        nova.notifier.api.notify(\u0027nova.error.publisher\u0027, \u0027error_notification\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAADH%2F%2F%2BbQ%3D","line":286,"in_reply_to":"AAAADH%2F%2F%2Ft0%3D","updated":"2012-01-04 20:20:12.000000000","message":"Done","commit_id":"066c82ba440aa2b1f864ba9898fe4ab7e9a3ca7a"}],"nova/tests/test_log.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d97d49f4b344dfb41bdc00cf93eb9339e2fc1e8a","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.notifier import api as notifier"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F9eE%3D","line":26,"updated":"2011-11-18 00:03:09.000000000","message":"These two imports are standard libs. They should be moved to below cStringIO above.","commit_id":"a34230ba4a74e13661ba96aac455f17ebe652412"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d97d49f4b344dfb41bdc00cf93eb9339e2fc1e8a","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"},{"line_number":30,"context_line":"                         [\u0027nova.notifier.no_op_notifier\u0027],"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F9eA%3D","line":27,"updated":"2011-11-18 00:03:09.000000000","message":"nose is a 3rd party lib, so should come between standard lib imports and nova imports. See HACKING :)","commit_id":"a34230ba4a74e13661ba96aac455f17ebe652412"},{"author":{"_account_id":67,"name":"Vish Ishaya","email":"vishvananda@gmail.com","username":"vishvananda"},"change_message_id":"4fb37e7c5fa05b8ad468c31d2549ac32c9ede187","unresolved":false,"context_lines":[{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"},{"line_number":30,"context_line":"                         [\u0027nova.notifier.no_op_notifier\u0027],"},{"line_number":31,"context_line":"                         \u0027List of drivers to send notifications\u0027)"},{"line_number":32,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F%2BI0%3D","line":29,"updated":"2011-11-15 23:16:12.000000000","message":"This should be flags.DECLARE(\u0027list_notifier_drivers\u0027, \u0027nova.notifier.list_notifier\u0027)","commit_id":"a34230ba4a74e13661ba96aac455f17ebe652412"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d97d49f4b344dfb41bdc00cf93eb9339e2fc1e8a","unresolved":false,"context_lines":[{"line_number":174,"context_line":"        logrecord \u003d logging.LogRecord(\u0027name\u0027, \u0027WARN\u0027, \u0027/tmp\u0027, 1,"},{"line_number":175,"context_line":"                                      \u0027message\u0027, None, None)"},{"line_number":176,"context_line":"        self.publisherrorshandler.emit(logrecord)"},{"line_number":177,"context_line":"        self.assert_(self.stub_flg)"},{"line_number":178,"context_line":""},{"line_number":179,"context_line":"    @attr(kind\u003d\u0027small\u0027)"},{"line_number":180,"context_line":"    def test_emit_cfg_log_notifier_in_list_notifier_drivers(self):"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F9d4%3D","line":177,"updated":"2011-11-18 00:03:09.000000000","message":"Please use assertTrue","commit_id":"a34230ba4a74e13661ba96aac455f17ebe652412"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"d97d49f4b344dfb41bdc00cf93eb9339e2fc1e8a","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        logrecord \u003d logging.LogRecord(\u0027name\u0027, \u0027WARN\u0027, \u0027/tmp\u0027, 1,"},{"line_number":192,"context_line":"                                      \u0027message\u0027, None, None)"},{"line_number":193,"context_line":"        self.publisherrorshandler.emit(logrecord)"},{"line_number":194,"context_line":"        self.assert_(self.stub_flg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAACn%2F%2F9d8%3D","line":194,"updated":"2011-11-18 00:03:09.000000000","message":"Please use assertTrue here","commit_id":"a34230ba4a74e13661ba96aac455f17ebe652412"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"282f6a6c51fbf44208dbe6b9a2910cbc14430985","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.notifier import api as notifier"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAADH%2F%2F%2Ftw%3D","line":26,"updated":"2011-12-29 16:12:01.000000000","message":"These imports should be under \"import cStringIO\" per HACKING document","commit_id":"066c82ba440aa2b1f864ba9898fe4ab7e9a3ca7a"},{"author":{"_account_id":1794,"name":"Donald Ngo","email":"donald.ngo@hp.com","username":"donald-ngo"},"change_message_id":"0e807fdae4697b24cfcfc4bf5d1d1fb4392fe69f","unresolved":false,"context_lines":[{"line_number":23,"context_line":"from nova.notifier import api as notifier"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAADH%2F%2F%2Bbs%3D","line":26,"in_reply_to":"AAAADH%2F%2F%2Ftw%3D","updated":"2012-01-04 20:20:12.000000000","message":"Hi Jay where can I find the HACKING document?","commit_id":"066c82ba440aa2b1f864ba9898fe4ab7e9a3ca7a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"282f6a6c51fbf44208dbe6b9a2910cbc14430985","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"},{"line_number":30,"context_line":"                         [\u0027nova.notifier.no_op_notifier\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAADH%2F%2F%2Fts%3D","line":27,"updated":"2011-12-29 16:12:01.000000000","message":"This import of a 3rd party library should be between std imports and the nova imports per HACKING document","commit_id":"066c82ba440aa2b1f864ba9898fe4ab7e9a3ca7a"},{"author":{"_account_id":1794,"name":"Donald Ngo","email":"donald.ngo@hp.com","username":"donald-ngo"},"change_message_id":"0e807fdae4697b24cfcfc4bf5d1d1fb4392fe69f","unresolved":false,"context_lines":[{"line_number":24,"context_line":""},{"line_number":25,"context_line":"import logging"},{"line_number":26,"context_line":"import sys"},{"line_number":27,"context_line":"from nose.plugins.attrib import attr"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"flags.DEFINE_multistring(\u0027list_notifier_drivers\u0027,"},{"line_number":30,"context_line":"                         [\u0027nova.notifier.no_op_notifier\u0027],"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAADH%2F%2F%2Bbo%3D","line":27,"in_reply_to":"AAAADH%2F%2F%2Fts%3D","updated":"2012-01-04 20:20:12.000000000","message":"Is this the correct ordering:\n\nimport cStringIO\nimport logging\nimport sys\n\nfrom nose.plugins.attrib import attr\n\nfrom nova import context\nfrom nova import flags\nfrom nova import log\nfrom nova import test\nfrom nova.notifier import api as notifier","commit_id":"066c82ba440aa2b1f864ba9898fe4ab7e9a3ca7a"}]}
