)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"570f03e7baf7fb985a487f8e8d3dfc923fe1aee3","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Kirill Bespalov \u003ckbespalov@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-09-18 17:13:26 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[redis matchmaker] Fix authication"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The nodes which where discovered via sentinels also may"},{"line_number":10,"context_line":"require the password, so just pass it."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"7a8ec9b2_cd48c08a","line":7,"range":{"start_line":7,"start_character":23,"end_line":7,"end_character":34},"updated":"2016-09-20 10:12:35.000000000","message":"I guess you meant \u0027authentication\u0027 here.","commit_id":"db122871796d7a921d2be15e06f03eb2fb06609c"}],"oslo_messaging/_drivers/zmq_driver/matchmaker/zmq_matchmaker_redis.py":[{"author":{"_account_id":8770,"name":"Ken Giusti","email":"kgiusti@gmail.com","username":"kgiusti"},"change_message_id":"76c5156f82c1da1e1ed458f33f4439cedb6e3f97","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            self._redis \u003d sentinel.master_for("},{"line_number":132,"context_line":"                self.conf.matchmaker_redis.sentinel_group_name,"},{"line_number":133,"context_line":"                socket_timeout\u003dsocket_timeout,"},{"line_number":134,"context_line":"                password\u003dself.conf.matchmaker_redis.password"},{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _extract_sentinel_options(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_1ff1556b","line":134,"updated":"2016-10-03 13:58:58.000000000","message":"Question: this conf option is marked as deprecated in favor of transport_url above.  Should this line also check for password in transport_url (if matchmaker_redis.password not set)?","commit_id":"ba0225d1052b9ffc96cc527e2cb9f6e1b3899b79"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"7a461105c0b8956a4eeb9e52a90d11b563b5825d","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            self._redis \u003d sentinel.master_for("},{"line_number":132,"context_line":"                self.conf.matchmaker_redis.sentinel_group_name,"},{"line_number":133,"context_line":"                socket_timeout\u003dsocket_timeout,"},{"line_number":134,"context_line":"                password\u003dself.conf.matchmaker_redis.password"},{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _extract_sentinel_options(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_aa110154","line":134,"in_reply_to":"3a98d1f4_1ff1556b","updated":"2016-10-03 14:03:17.000000000","message":"I suppose Ken is right, we\u0027ve missed the url here. I think we could extend the _extract_sentinel_options method to return not only extracted hosts but also password etc.","commit_id":"ba0225d1052b9ffc96cc527e2cb9f6e1b3899b79"},{"author":{"_account_id":19520,"name":"Kirill Bespalov","email":"kbespalov@mirantis.com","username":"k.bespalov"},"change_message_id":"0809a18f6d39eb204a1dc451a8e206a6e7f0f7c5","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            self._redis \u003d sentinel.master_for("},{"line_number":132,"context_line":"                self.conf.matchmaker_redis.sentinel_group_name,"},{"line_number":133,"context_line":"                socket_timeout\u003dsocket_timeout,"},{"line_number":134,"context_line":"                password\u003dself.conf.matchmaker_redis.password"},{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _extract_sentinel_options(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_f5e821b5","line":134,"in_reply_to":"3a98d1f4_aa110154","updated":"2016-10-04 10:14:40.000000000","message":"I agree, but are you sure that matchmaker_redis.password or matchmaker_redis.sentinel_hosts must be deprecated? For example zmq-proxy does not have access to the transport_url (just because here no loading of any oslo.messaging driver, url\u003dNone always).\n\nFurthermore, how about cases then used dns-based load balancer for sentinels (e.g. in k8s)? In this case transport_url will be consist of single host and RedisMatchmaker consider this as single redis deployment. So, the only way to let know matchmaker about sentinels is use \u0027sentinel_hosts\u0027 option instead of transport_url.","commit_id":"ba0225d1052b9ffc96cc527e2cb9f6e1b3899b79"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"68213c8b50047edb5221969838079dc2f8d7d020","unresolved":false,"context_lines":[{"line_number":131,"context_line":"            self._redis \u003d sentinel.master_for("},{"line_number":132,"context_line":"                self.conf.matchmaker_redis.sentinel_group_name,"},{"line_number":133,"context_line":"                socket_timeout\u003dsocket_timeout,"},{"line_number":134,"context_line":"                password\u003dself.conf.matchmaker_redis.password"},{"line_number":135,"context_line":"            )"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def _extract_sentinel_options(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a98d1f4_3038d7d2","line":134,"in_reply_to":"3a98d1f4_f5e821b5","updated":"2016-10-04 10:29:39.000000000","message":"This deprecation is done for consistency with other messaging drivers so we can switch transport changing the url.\n\nRegarding url the better way is to update it like that\n\nzmq+redis://host\n\nzmq+sentinel://host,host,host\n\nof course that can be done in follow up patches.\n\nSupport url in proxy is one more feature we can add. It is not needed to create the driver because we can either pass url as cmd line parameter or read it from cfg.","commit_id":"ba0225d1052b9ffc96cc527e2cb9f6e1b3899b79"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"2ffad5097ec2ed1a417117f2ccce0af6f88099b3","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    def __init__(self, conf, *args, **kwargs):"},{"line_number":365,"context_line":"        super(MatchmakerSentinel, self).__init__(conf, *args, **kwargs)"},{"line_number":366,"context_line":"        socket_timeout \u003d self.conf.matchmaker_redis.socket_timeout / 1000."},{"line_number":367,"context_line":"        hosts, password, master_group \u003d self._extract_sentinel_hosts()"},{"line_number":368,"context_line":"        self._sentinel \u003d redis_sentinel.Sentinel(sentinels\u003dhosts,"},{"line_number":369,"context_line":"                                                 socket_timeout\u003dsocket_timeout,"},{"line_number":370,"context_line":"                                                 password\u003dpassword)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_0b1aa917","line":367,"range":{"start_line":367,"start_character":8,"end_line":367,"end_character":13},"updated":"2016-10-18 10:24:10.000000000","message":"You should save hosts in the self._sentinel_hosts member variable in order to pass the unit-tests.","commit_id":"ac782eb222548460cc09f3e9db20982530059bab"},{"author":{"_account_id":19520,"name":"Kirill Bespalov","email":"kbespalov@mirantis.com","username":"k.bespalov"},"change_message_id":"f7505cb67d393a17be44aced0629f470ffeae2d6","unresolved":false,"context_lines":[{"line_number":364,"context_line":"    def __init__(self, conf, *args, **kwargs):"},{"line_number":365,"context_line":"        super(MatchmakerSentinel, self).__init__(conf, *args, **kwargs)"},{"line_number":366,"context_line":"        socket_timeout \u003d self.conf.matchmaker_redis.socket_timeout / 1000."},{"line_number":367,"context_line":"        hosts, password, master_group \u003d self._extract_sentinel_hosts()"},{"line_number":368,"context_line":"        self._sentinel \u003d redis_sentinel.Sentinel(sentinels\u003dhosts,"},{"line_number":369,"context_line":"                                                 socket_timeout\u003dsocket_timeout,"},{"line_number":370,"context_line":"                                                 password\u003dpassword)"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_73395b41","line":367,"range":{"start_line":367,"start_character":8,"end_line":367,"end_character":13},"in_reply_to":"fa6399be_0b1aa917","updated":"2016-10-18 11:30:21.000000000","message":"Done","commit_id":"ac782eb222548460cc09f3e9db20982530059bab"},{"author":{"_account_id":20864,"name":"Gevorg Davoian","email":"gdavoian@gmail.com","username":"gdavoian"},"change_message_id":"2ffad5097ec2ed1a417117f2ccce0af6f88099b3","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        self._redis_master \u003d self._sentinel.master_for(master_group)"},{"line_number":372,"context_line":"        self._redis_slave \u003d self._sentinel.slave_for(master_group)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def extract_sentinel_hosts(self):"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        sentinels \u003d []"},{"line_number":377,"context_line":"        master_group \u003d self.conf.matchmaker_redis.sentinel_group_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_0b1d4966","line":374,"range":{"start_line":374,"start_character":8,"end_line":374,"end_character":30},"updated":"2016-10-18 10:24:10.000000000","message":"I think you missed an underscore before this method\u0027s name. See line 367.","commit_id":"ac782eb222548460cc09f3e9db20982530059bab"},{"author":{"_account_id":19520,"name":"Kirill Bespalov","email":"kbespalov@mirantis.com","username":"k.bespalov"},"change_message_id":"f7505cb67d393a17be44aced0629f470ffeae2d6","unresolved":false,"context_lines":[{"line_number":371,"context_line":"        self._redis_master \u003d self._sentinel.master_for(master_group)"},{"line_number":372,"context_line":"        self._redis_slave \u003d self._sentinel.slave_for(master_group)"},{"line_number":373,"context_line":""},{"line_number":374,"context_line":"    def extract_sentinel_hosts(self):"},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"        sentinels \u003d []"},{"line_number":377,"context_line":"        master_group \u003d self.conf.matchmaker_redis.sentinel_group_name"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa6399be_933eef27","line":374,"range":{"start_line":374,"start_character":8,"end_line":374,"end_character":30},"in_reply_to":"fa6399be_0b1d4966","updated":"2016-10-18 11:30:21.000000000","message":"Done","commit_id":"ac782eb222548460cc09f3e9db20982530059bab"}]}
