)]}'
{"oslo_messaging/_drivers/zmq_driver/matchmaker/matchmaker_redis.py":[{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"6880e9dbbde329dbe297744d9e4e7d78912518cc","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":12,"context_line":"#    under the License."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"import inspect"},{"line_number":15,"context_line":"import logging"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"from oslo_config import cfg"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_627272af","line":14,"updated":"2015-12-25 16:25:31.000000000","message":"Please update requirements.txt regarding to modules used here (inspect and retry).","commit_id":"394c761f5832d0c41a0d6fdd8d33aa12e1377aed"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"6880e9dbbde329dbe297744d9e4e7d78912518cc","unresolved":false,"context_lines":[{"line_number":39,"context_line":"               help\u003d\u0027Password for Redis server (optional).\u0027),"},{"line_number":40,"context_line":"    cfg.ListOpt(\u0027sentinel_hosts\u0027,"},{"line_number":41,"context_line":"                default\u003d[],"},{"line_number":42,"context_line":"                help\u003d\u0027List of Redis Sentinel hosts (fault tolerance mode)\u0027),"},{"line_number":43,"context_line":"    cfg.StrOpt(\u0027sentinel_group_name\u0027,"},{"line_number":44,"context_line":"               default\u003d\u0027oslo-messaging-zeromq\u0027,"},{"line_number":45,"context_line":"               help\u003d\u0027Redis replica set name.\u0027),"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_ff4cb943","line":42,"updated":"2015-12-25 16:25:31.000000000","message":"Please specify the format of list items in help (host:port maybe)?","commit_id":"394c761f5832d0c41a0d6fdd8d33aa12e1377aed"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"6880e9dbbde329dbe297744d9e4e7d78912518cc","unresolved":false,"context_lines":[{"line_number":45,"context_line":"               help\u003d\u0027Redis replica set name.\u0027),"},{"line_number":46,"context_line":"    cfg.IntOpt(\u0027wait_timeout\u0027,"},{"line_number":47,"context_line":"               default\u003d500,"},{"line_number":48,"context_line":"               help\u003d\u0027Time to wait between connection attempts.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027check_timeout\u0027,"},{"line_number":50,"context_line":"               default\u003d20000,"},{"line_number":51,"context_line":"               help\u003d\u0027Time to wait before the transaction is killed.\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_df8c5d81","line":48,"updated":"2015-12-25 16:25:31.000000000","message":"Please mention measure units in help (might be ms supposedly)","commit_id":"394c761f5832d0c41a0d6fdd8d33aa12e1377aed"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"6880e9dbbde329dbe297744d9e4e7d78912518cc","unresolved":false,"context_lines":[{"line_number":48,"context_line":"               help\u003d\u0027Time to wait between connection attempts.\u0027),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027check_timeout\u0027,"},{"line_number":50,"context_line":"               default\u003d20000,"},{"line_number":51,"context_line":"               help\u003d\u0027Time to wait before the transaction is killed.\u0027)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":"]"},{"line_number":54,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_9fed7527","line":51,"updated":"2015-12-25 16:25:31.000000000","message":"The same as above","commit_id":"394c761f5832d0c41a0d6fdd8d33aa12e1377aed"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"6880e9dbbde329dbe297744d9e4e7d78912518cc","unresolved":false,"context_lines":[{"line_number":77,"context_line":""},{"line_number":78,"context_line":"            self._redis \u003d sentinel.master_for("},{"line_number":79,"context_line":"                self.conf.matchmaker_redis.sentinel_group_name,"},{"line_number":80,"context_line":"                socket_timeout\u003d0.1"},{"line_number":81,"context_line":"            )"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        def retry_if_connection_error(ex):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_bf6dd199","line":80,"updated":"2015-12-25 16:25:31.000000000","message":"Make timeout also configurable?","commit_id":"394c761f5832d0c41a0d6fdd8d33aa12e1377aed"},{"author":{"_account_id":13290,"name":"Oleksii Zamiatin","email":"ozamiatin@mirantis.com","username":"ozamiatin"},"change_message_id":"6880e9dbbde329dbe297744d9e4e7d78912518cc","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        def retry_if_connection_error(ex):"},{"line_number":84,"context_line":"            return isinstance(ex, redis.ConnectionError)"},{"line_number":85,"context_line":""},{"line_number":86,"context_line":"        for attr_name, attr in inspect.getmembers(self):"},{"line_number":87,"context_line":"            if not (inspect.ismethod(attr) or inspect.isfunction(attr)):"},{"line_number":88,"context_line":"                continue"},{"line_number":89,"context_line":"            if attr_name.startswith(\"_\"):"}],"source_content_type":"text/x-python","patch_set":1,"id":"1a7b0d38_023ccec6","line":86,"updated":"2015-12-25 16:25:31.000000000","message":"Please move this to a separate function like _apply_retrying(klazz, conf) and put the function outside the class. It would keep MatchMaker class simpler.\nI\u0027d suggest to apply this function as a class decorator, but see a problem with passing conf into it.","commit_id":"394c761f5832d0c41a0d6fdd8d33aa12e1377aed"}]}
