)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"4e13b71e43e79b8a60c2084b688728b6aeb11053","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Joshua Harlow \u003charlowja@gmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-11 07:59:58 -0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a zookeeper based matchmaker"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I4c197dcfa40aef44940d6cd8272176f34fd09e2e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"1ae5cdf2_323b1fd2","line":7,"updated":"2014-06-20 13:30:00.000000000","message":"This is my second review of oslo.messaging for today with the same experience. You, guys, are preventing coming of new reviewers to the component with your extra-short commit messages, for those in the subject \u003d). Please describe, what for we need it? What does it do? Thanks!","commit_id":"93e5be424fcffc70a726a117aa6d221844ef589c"}],"oslo/messaging/_drivers/matchmaker_zookeeper.py":[{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"f20cf303e1e44771991fb295838dbbe5c3219344","unresolved":false,"context_lines":[{"line_number":32,"context_line":"                help\u003d\u0027Zookeeper HA cluster host:port pairs.\u0027),"},{"line_number":33,"context_line":"    cfg.IntOpt(\u0027timeout\u0027,"},{"line_number":34,"context_line":"               default\u003d10,"},{"line_number":35,"context_line":"               help\u003d\u0027The longest to wait for a Zookeeper connection.\u0027),"},{"line_number":36,"context_line":"    cfg.StrOpt(\u0027path\u0027,"},{"line_number":37,"context_line":"               default\u003d\u0027/oslo/matchmaker\u0027,"},{"line_number":38,"context_line":"               help\u003d\u0027Root path to save/fetch match maker data.\u0027),"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FZFs%3D","line":35,"updated":"2014-03-18 07:00:30.000000000","message":"The longest seconds ?","commit_id":"b0863ca3e71c58439cd49d1d040a36ec94f4f5af"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"f20cf303e1e44771991fb295838dbbe5c3219344","unresolved":false,"context_lines":[{"line_number":44,"context_line":"CONF.register_group(opt_group)"},{"line_number":45,"context_line":"CONF.register_opts(matchmaker_zk_opts, opt_group)"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"LOG \u003d logging.getLogger(__name__)"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class ZookeeperExchange(mm_common.Exchange):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FZFM%3D","line":47,"updated":"2014-03-18 07:00:30.000000000","message":"LOG isn\u0027t used anywhere,  is this used in your next patchset ?","commit_id":"b0863ca3e71c58439cd49d1d040a36ec94f4f5af"},{"author":{"_account_id":9796,"name":"ChangBo Guo","email":"glongwave@gmail.com","username":"gcb"},"change_message_id":"f20cf303e1e44771991fb295838dbbe5c3219344","unresolved":false,"context_lines":[{"line_number":49,"context_line":""},{"line_number":50,"context_line":"class ZookeeperExchange(mm_common.Exchange):"},{"line_number":51,"context_line":"    def __init__(self, matchmaker):"},{"line_number":52,"context_line":"        self.matchmaker \u003d matchmaker"},{"line_number":53,"context_line":"        self.client \u003d matchmaker.client"},{"line_number":54,"context_line":"        self.path \u003d matchmaker.path"},{"line_number":55,"context_line":"        super(ZookeeperExchange, self).__init__()"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F%2FZEE%3D","line":52,"updated":"2014-03-18 07:00:30.000000000","message":"self.matchmaker  is not used.","commit_id":"b0863ca3e71c58439cd49d1d040a36ec94f4f5af"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"4e13b71e43e79b8a60c2084b688728b6aeb11053","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from oslo.messaging._drivers import matchmaker as mm_common"},{"line_number":23,"context_line":"from oslo.messaging.openstack.common import importutils"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"kazoo_client \u003d importutils.try_import(\u0027kazoo.client\u0027)"},{"line_number":26,"context_line":"kazoo_exceptions \u003d importutils.try_import(\u0027kazoo.exceptions\u0027)"},{"line_number":27,"context_line":"kazoo_paths \u003d importutils.try_import(\u0027kazoo.protocol.paths\u0027)"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_12838303","line":25,"updated":"2014-06-20 13:30:00.000000000","message":"We have kazoo\u003e\u003d0.9 in requirements, in this patch. Why such a wariness?","commit_id":"93e5be424fcffc70a726a117aa6d221844ef589c"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"4e13b71e43e79b8a60c2084b688728b6aeb11053","unresolved":false,"context_lines":[{"line_number":119,"context_line":"                         ZookeeperTopicExchange(self))"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def ack_alive(self, key, host):"},{"line_number":122,"context_line":"        # This doesn\u0027t matter in zookeeper, since we create ephemeral nodes"},{"line_number":123,"context_line":"        # those nodes will stay active and existent as long as our process and"},{"line_number":124,"context_line":"        # client keeps itself alive. Zookeeper will automatically delete"},{"line_number":125,"context_line":"        # ephemeral nodes when the client stops heartbeating."}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_b283af54","line":122,"updated":"2014-06-20 13:30:00.000000000","message":"If it doesn\u0027t matter, why is it implemented? Should it be overrided?","commit_id":"93e5be424fcffc70a726a117aa6d221844ef589c"},{"author":{"_account_id":7536,"name":"Ilya Pekelny","email":"ipekelny@mirantis.com","username":"I159"},"change_message_id":"4e13b71e43e79b8a60c2084b688728b6aeb11053","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        except kazoo_exceptions.NodeExistsException:"},{"line_number":142,"context_line":"            pass"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def send_heartbeats(self):"},{"line_number":145,"context_line":"        pass"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def expire(self, topic, host):"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ae5cdf2_f23e178a","line":144,"updated":"2014-06-20 13:30:00.000000000","message":"I think methods prepared to overriding should be implemented with `NotImplementedError`.","commit_id":"93e5be424fcffc70a726a117aa6d221844ef589c"}]}
