)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"7c028c4448246d41f415e4accb10b3093dc6b2f9","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve performance of libvirt inspector requests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently libvirt inspector call _test_connection before every"},{"line_number":10,"context_line":"request. It takes 30% of running time."},{"line_number":11,"context_line":"In patch we catch libvirt exceptions at runtime and try to restart"},{"line_number":12,"context_line":"a failed request."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baada198_67780a7f","line":9,"updated":"2014-08-07 08:50:18.000000000","message":"It seems that here should be s/call/calls","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"d07bd04d0b668e38005d77973f572e09e666b619","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Improve performance of libvirt inspector requests"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Currently libvirt inspector call _test_connection before every"},{"line_number":10,"context_line":"request. It takes 30% of running time."},{"line_number":11,"context_line":"In patch we catch libvirt exceptions at runtime and try to restart"},{"line_number":12,"context_line":"a failed request."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"baada198_7ca09ca4","line":9,"in_reply_to":"baada198_67780a7f","updated":"2014-08-07 09:54:20.000000000","message":"Done","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"}],"ceilometer/compute/virt/libvirt/inspector.py":[{"author":{"_account_id":7763,"name":"Alexei Kornienko","email":"akornienko@mirantis.com","username":"akornienko"},"change_message_id":"ecad6e06864d8c0c7c5f5ef1967660808e4f4bf1","unresolved":false,"context_lines":[{"line_number":44,"context_line":"CONF.register_opts(libvirt_opts)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def retry_on_disconnect(function):"},{"line_number":48,"context_line":"    def decorator(self, *args, **kwargs):"},{"line_number":49,"context_line":"        try:"},{"line_number":50,"context_line":"            return function(self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_bb09ac32","line":47,"updated":"2014-06-06 11:53:16.000000000","message":"I guess this should be a private function or even a private method. It\u0027s not usable outside of the class.","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"441fbf8509c6c5abd0cbb1c6d27e493dbd6b521f","unresolved":false,"context_lines":[{"line_number":44,"context_line":"CONF.register_opts(libvirt_opts)"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"def retry_on_disconnect(function):"},{"line_number":48,"context_line":"    def decorator(self, *args, **kwargs):"},{"line_number":49,"context_line":"        try:"},{"line_number":50,"context_line":"            return function(self, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_d08640db","line":47,"in_reply_to":"1ae5cdf2_bb09ac32","updated":"2014-07-09 10:37:54.000000000","message":"Done","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"57623518a3cf19857cd426895aecd0d6cdb4e857","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            if (e.get_error_code() \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR and"},{"line_number":53,"context_line":"                e.get_error_domain() in (libvirt.VIR_FROM_REMOTE,"},{"line_number":54,"context_line":"                                         libvirt.VIR_FROM_RPC)):"},{"line_number":55,"context_line":"                LOG.debug(_(\u0027Connection to libvirt broke\u0027))"},{"line_number":56,"context_line":"                self.connection \u003d None"},{"line_number":57,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":58,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_6a59078e","line":55,"updated":"2014-06-06 15:50:32.000000000","message":"-1: the debug level message in log will not be translated now.","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":3012,"name":"Dina Belova","email":"dbelova@mirantis.com","username":"dbelova"},"change_message_id":"6abaa848d8e86e2bc46512068f30284ee1d78838","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            if (e.get_error_code() \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR and"},{"line_number":53,"context_line":"                e.get_error_domain() in (libvirt.VIR_FROM_REMOTE,"},{"line_number":54,"context_line":"                                         libvirt.VIR_FROM_RPC)):"},{"line_number":55,"context_line":"                LOG.debug(_(\u0027Connection to libvirt broke\u0027))"},{"line_number":56,"context_line":"                self.connection \u003d None"},{"line_number":57,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":58,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_e7fc77b7","line":55,"updated":"2014-06-06 13:21:26.000000000","message":"broke -\u003e broken","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"441fbf8509c6c5abd0cbb1c6d27e493dbd6b521f","unresolved":false,"context_lines":[{"line_number":52,"context_line":"            if (e.get_error_code() \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR and"},{"line_number":53,"context_line":"                e.get_error_domain() in (libvirt.VIR_FROM_REMOTE,"},{"line_number":54,"context_line":"                                         libvirt.VIR_FROM_RPC)):"},{"line_number":55,"context_line":"                LOG.debug(_(\u0027Connection to libvirt broke\u0027))"},{"line_number":56,"context_line":"                self.connection \u003d None"},{"line_number":57,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":58,"context_line":"            else:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_1068a820","line":55,"in_reply_to":"1ae5cdf2_6a59078e","updated":"2014-07-09 10:37:54.000000000","message":"Done","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"57623518a3cf19857cd426895aecd0d6cdb4e857","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                self.connection \u003d None"},{"line_number":57,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":58,"context_line":"            else:"},{"line_number":59,"context_line":"                raise e"},{"line_number":60,"context_line":"    return decorator"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_6a82e7c9","line":59,"updated":"2014-06-06 15:50:32.000000000","message":"-1: in decorator, I think raise is better than raise e, because raise e will use new stack trace, when the exceptions are raised, the log (if there is) cannot figure out where the exceptions start, they\u0027re all in a decorator function..","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"441fbf8509c6c5abd0cbb1c6d27e493dbd6b521f","unresolved":false,"context_lines":[{"line_number":56,"context_line":"                self.connection \u003d None"},{"line_number":57,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":58,"context_line":"            else:"},{"line_number":59,"context_line":"                raise e"},{"line_number":60,"context_line":"    return decorator"},{"line_number":61,"context_line":""},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_9063d840","line":59,"in_reply_to":"1ae5cdf2_6a82e7c9","updated":"2014-07-09 10:37:54.000000000","message":"Done","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"57623518a3cf19857cd426895aecd0d6cdb4e857","unresolved":false,"context_lines":[{"line_number":94,"context_line":"            if (error_code \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR and"},{"line_number":95,"context_line":"                ex.get_error_domain() in (libvirt.VIR_FROM_REMOTE,"},{"line_number":96,"context_line":"                                          libvirt.VIR_FROM_RPC)):"},{"line_number":97,"context_line":"                raise ex"},{"line_number":98,"context_line":"            msg \u003d (\"Error from libvirt while looking up %(instance_name)s: \""},{"line_number":99,"context_line":"                   \"[Error Code %(error_code)s] \""},{"line_number":100,"context_line":"                   \"%(ex)s\" % {\u0027instance_name\u0027: instance_name,"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_2a037f77","line":97,"updated":"2014-06-06 15:50:32.000000000","message":"optional -1: raise will keep stack trace, but raise e will not, so if the invoker want to log an exception, this behavior will lose some information","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":6676,"name":"zqfan","email":"aji.zqfan@gmail.com","username":"aji-zqfan"},"change_message_id":"57623518a3cf19857cd426895aecd0d6cdb4e857","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                        yield virt_inspector.Instance(name\u003ddomain.name(),"},{"line_number":114,"context_line":"                                                      UUID\u003ddomain.UUIDString())"},{"line_number":115,"context_line":"                except libvirt.libvirtError:"},{"line_number":116,"context_line":"                    # Instance was deleted while listing... ignore it"},{"line_number":117,"context_line":"                    pass"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def inspect_cpus(self, instance_name):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_0ac08329","line":116,"updated":"2014-06-06 15:50:32.000000000","message":"-1: the libvirt.libvirtError is ignored, so the retry will not happen","commit_id":"7e1f43549b2632c4965772738b0b7845701be5ba"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"7c028c4448246d41f415e4accb10b3093dc6b2f9","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                self.connection \u003d None"},{"line_number":56,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                raise"},{"line_number":59,"context_line":"    return decorator"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_c71636f3","line":58,"updated":"2014-08-07 08:50:18.000000000","message":"Probably it should raise some Exception?","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"7c855199121ee8398c8ba8ff2e772be4ea9b5031","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                self.connection \u003d None"},{"line_number":56,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                raise"},{"line_number":59,"context_line":"    return decorator"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_af9e7804","line":58,"in_reply_to":"baada198_3c96244a","updated":"2014-08-07 10:35:19.000000000","message":"Got it. Thank you for explanation.","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"d07bd04d0b668e38005d77973f572e09e666b619","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                self.connection \u003d None"},{"line_number":56,"context_line":"                return function(self, *args, **kwargs)"},{"line_number":57,"context_line":"            else:"},{"line_number":58,"context_line":"                raise"},{"line_number":59,"context_line":"    return decorator"},{"line_number":60,"context_line":""},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_3c96244a","line":58,"in_reply_to":"baada198_c71636f3","updated":"2014-08-07 09:54:20.000000000","message":"\"raise\" use stack trace from catch exception, but \"raise e\" use new stack trace. So in log uncompleted info may be shown.","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":10987,"name":"Igor Degtiarov","username":"tovstun","inactive":true},"change_message_id":"7c028c4448246d41f415e4accb10b3093dc6b2f9","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            if (error_code \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR and"},{"line_number":93,"context_line":"                ex.get_error_domain() in (libvirt.VIR_FROM_REMOTE,"},{"line_number":94,"context_line":"                                          libvirt.VIR_FROM_RPC)):"},{"line_number":95,"context_line":"                raise"},{"line_number":96,"context_line":"            msg \u003d (\"Error from libvirt while looking up %(instance_name)s: \""},{"line_number":97,"context_line":"                   \"[Error Code %(error_code)s] \""},{"line_number":98,"context_line":"                   \"%(ex)s\" % {\u0027instance_name\u0027: instance_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_67b00afe","line":95,"updated":"2014-08-07 08:50:18.000000000","message":"ditto","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"d07bd04d0b668e38005d77973f572e09e666b619","unresolved":false,"context_lines":[{"line_number":92,"context_line":"            if (error_code \u003d\u003d libvirt.VIR_ERR_SYSTEM_ERROR and"},{"line_number":93,"context_line":"                ex.get_error_domain() in (libvirt.VIR_FROM_REMOTE,"},{"line_number":94,"context_line":"                                          libvirt.VIR_FROM_RPC)):"},{"line_number":95,"context_line":"                raise"},{"line_number":96,"context_line":"            msg \u003d (\"Error from libvirt while looking up %(instance_name)s: \""},{"line_number":97,"context_line":"                   \"[Error Code %(error_code)s] \""},{"line_number":98,"context_line":"                   \"%(ex)s\" % {\u0027instance_name\u0027: instance_name,"}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_bc34f449","line":95,"in_reply_to":"baada198_67b00afe","updated":"2014-08-07 09:54:20.000000000","message":"ditto","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":4491,"name":"Lianhao Lu","email":"llh_misc@outlook.com","username":"lianhao-lu"},"change_message_id":"f2689eb8fd76f5b55b8e39f24a2bd47b715f07d3","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                if domain_id !\u003d 0:"},{"line_number":114,"context_line":"                    try:"},{"line_number":115,"context_line":"                        yield self.inspect_instance(domain_id)"},{"line_number":116,"context_line":"                    except Exception:"},{"line_number":117,"context_line":"                        # Instance was deleted while listing... ignore it"},{"line_number":118,"context_line":"                        pass"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_f5184878","line":116,"updated":"2014-08-07 03:28:28.000000000","message":"Should we only ignore the libvirt.libvirtError? I think other exception should to raised.","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"},{"author":{"_account_id":7729,"name":"Ilya Tyaptin","email":"ityaptin@mirantis.com","username":"ityaptin"},"change_message_id":"d07bd04d0b668e38005d77973f572e09e666b619","unresolved":false,"context_lines":[{"line_number":113,"context_line":"                if domain_id !\u003d 0:"},{"line_number":114,"context_line":"                    try:"},{"line_number":115,"context_line":"                        yield self.inspect_instance(domain_id)"},{"line_number":116,"context_line":"                    except Exception:"},{"line_number":117,"context_line":"                        # Instance was deleted while listing... ignore it"},{"line_number":118,"context_line":"                        pass"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baada198_3c59c429","line":116,"in_reply_to":"baada198_f5184878","updated":"2014-08-07 09:54:20.000000000","message":"Done","commit_id":"c62575d4ff814903f8c06ba213b3823d35ea4df4"}]}
