diff options
author | Andy McCurdy <andy@andymccurdy.com> | 2014-05-06 23:27:24 -0700 |
---|---|---|
committer | Andy McCurdy <andy@andymccurdy.com> | 2014-05-06 23:27:24 -0700 |
commit | 02c7eef093854fd41ef1b6e9e8274204c69eed10 (patch) | |
tree | 4e333101377939a41802c2ab9a806dc83edc03e1 /redis/sentinel.py | |
parent | 8123a4865bc3f5ec781a84fad30a48f251beffe1 (diff) | |
download | redis-py-02c7eef093854fd41ef1b6e9e8274204c69eed10.tar.gz |
fixed __repr__ for clients created from sentinel. fixes #439
Diffstat (limited to 'redis/sentinel.py')
-rw-r--r-- | redis/sentinel.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/redis/sentinel.py b/redis/sentinel.py index b541686..4320847 100644 --- a/redis/sentinel.py +++ b/redis/sentinel.py @@ -21,6 +21,14 @@ class SentinelManagedConnection(Connection): self.connection_pool = kwargs.pop('connection_pool') super(SentinelManagedConnection, self).__init__(**kwargs) + def __repr__(self): + pool = self.connection_pool + s = '%s<service=%s%%s>' % (type(self).__name__, pool.service_name) + if self.host: + host_info = ',host=%s,port=%s' % (self.host, self.port) + s = s % host_info + return s + def connect_to(self, address): self.host, self.port = address super(SentinelManagedConnection, self).connect() @@ -77,6 +85,13 @@ class SentinelConnectionPool(ConnectionPool): self.master_address = None self.slave_rr_counter = None + def __repr__(self): + return "%s<service=%s(%s)" % ( + type(self).__name__, + self.service_name, + self.is_master and 'master' or 'slave', + ) + def get_master_address(self): master_address = self.sentinel_manager.discover_master( self.service_name) @@ -143,6 +158,17 @@ class Sentinel(object): for hostname, port in sentinels] self.min_other_sentinels = min_other_sentinels + def __repr__(self): + sentinel_addresses = [] + for sentinel in self.sentinels: + sentinel_addresses.append('%s:%s' % ( + sentinel.connection_pool.connection_kwargs['host'], + sentinel.connection_pool.connection_kwargs['port'], + )) + return '%s<sentinels=[%s]>' % ( + type(self).__name__, + ','.join(sentinel_addresses)) + def check_master_state(self, state, service_name): if not state['is_master'] or state['is_sdown'] or state['is_odown']: return False |