)]}'
{"neutron/common/utils.py":[{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"14de77feeefd7760d290629e2ee3dd7e7094a40b","unresolved":false,"context_lines":[{"line_number":213,"context_line":"        instance \u003d args[0]"},{"line_number":214,"context_line":"        data \u003d {\"class_name\": instance.__class__.__name__,"},{"line_number":215,"context_line":"                \"method_name\": method.__name__,"},{"line_number":216,"context_line":"                \"args\": args, \"kwargs\": kwargs}"},{"line_number":217,"context_line":"        LOG.debug(_(\u0027%(class_name)s method %(method_name)s\u0027"},{"line_number":218,"context_line":"                    \u0027called with arguments %(args)s %(kwargs)s \u0027)"},{"line_number":219,"context_line":"                  % data)"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2FgUw%3D","line":216,"updated":"2013-07-17 08:36:17.000000000","message":"args[0] is an instance itself and it is translated into a class name above. it is better to use args[1:] instead.","commit_id":"16e03e2cadcd86b689956c1e4ee0ea0485c78e3c"},{"author":{"_account_id":6072,"name":"Eugene Nikanorov","email":"enikanorov@mirantis.com","username":"enikanorov"},"change_message_id":"f4a03e69890a844e7a4bd77a7db597da2bc7781b","unresolved":false,"context_lines":[{"line_number":215,"context_line":"                \"method_name\": method.__name__,"},{"line_number":216,"context_line":"                \"args\": args, \"kwargs\": kwargs}"},{"line_number":217,"context_line":"        LOG.debug(_(\u0027%(class_name)s method %(method_name)s\u0027"},{"line_number":218,"context_line":"                    \u0027called with arguments %(args)s %(kwargs)s \u0027)"},{"line_number":219,"context_line":"                  % data)"},{"line_number":220,"context_line":"        return method(*args, **kwargs)"},{"line_number":221,"context_line":"    return wrapper"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAP3%2F%2FgVM%3D","line":218,"updated":"2013-07-17 08:30:40.000000000","message":"nit: use , instead of %\n\nThe reason for using , is that string substitutions can be skipped if logging level is not printing debug messages","commit_id":"16e03e2cadcd86b689956c1e4ee0ea0485c78e3c"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"21acc00d7437ece5054a132709b703cf1ed85a1a","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    return q_const.MIN_VLAN_TAG \u003c\u003d vlan \u003c\u003d q_const.MAX_VLAN_TAG"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def log(method):"},{"line_number":211,"context_line":"    \"\"\"Decorator helping to log method calls.\"\"\""},{"line_number":212,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":213,"context_line":"        instance \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2F%2By8%3D","line":210,"updated":"2013-07-18 02:54:03.000000000","message":"I\u0027d prefer this not be put into utils as this module is accumulating a random mix of methods which devs are not likely to discover.  Might make sense to add a neutron.common.log module.  We could eventually move setup_logging there too.","commit_id":"f7b066a899ed66302e7f9bb75081836951e48253"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"e33d7d0156b84fad17882914f857dc770e401430","unresolved":false,"context_lines":[{"line_number":207,"context_line":"    return q_const.MIN_VLAN_TAG \u003c\u003d vlan \u003c\u003d q_const.MAX_VLAN_TAG"},{"line_number":208,"context_line":""},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"def log(method):"},{"line_number":211,"context_line":"    \"\"\"Decorator helping to log method calls.\"\"\""},{"line_number":212,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":213,"context_line":"        instance \u003d args[0]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAQn%2F%2F%2BJ8%3D","line":210,"in_reply_to":"AAAAQn%2F%2F%2By8%3D","updated":"2013-07-18 08:50:40.000000000","message":"Done decorator moved in neutron.common.log. I would prefer the setup_logging moving to be addressed in another patch.","commit_id":"f7b066a899ed66302e7f9bb75081836951e48253"}],"neutron/services/loadbalancer/drivers/noop/noop_driver.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"629468a2ebb01c70187363beff16f335685be8c8","unresolved":false,"context_lines":[{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def log(method):"},{"line_number":29,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":30,"context_line":"        data \u003d {\"method_name\": method.__name__, \"args\": args, \"kwargs\": kwargs}"},{"line_number":31,"context_line":"        LOG.debug(_(\u0027NoopLbaaSDriver method %(method_name)s\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2FgSQ%3D","line":28,"updated":"2013-07-17 08:49:01.000000000","message":"this should be removed","commit_id":"2f0a33852b235969f186ccb5c3fbdeaa4faf9b06"},{"author":{"_account_id":7141,"name":"Sylvain Afchain","email":"safchain@redhat.com","username":"sylvainA"},"change_message_id":"015db3b859eadf0bf28153b240ba1d247d07302a","unresolved":false,"context_lines":[{"line_number":25,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"def log(method):"},{"line_number":29,"context_line":"    def wrapper(*args, **kwargs):"},{"line_number":30,"context_line":"        data \u003d {\"method_name\": method.__name__, \"args\": args, \"kwargs\": kwargs}"},{"line_number":31,"context_line":"        LOG.debug(_(\u0027NoopLbaaSDriver method %(method_name)s\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAP3%2F%2FgR4%3D","line":28,"in_reply_to":"AAAAP3%2F%2FgSQ%3D","updated":"2013-07-17 08:50:23.000000000","message":"Yes sorry","commit_id":"2f0a33852b235969f186ccb5c3fbdeaa4faf9b06"}]}
