summaryrefslogtreecommitdiff
path: root/redis/sentinel.py
diff options
context:
space:
mode:
authorAndy McCurdy <andy@andymccurdy.com>2014-05-06 23:27:24 -0700
committerAndy McCurdy <andy@andymccurdy.com>2014-05-06 23:27:24 -0700
commit02c7eef093854fd41ef1b6e9e8274204c69eed10 (patch)
tree4e333101377939a41802c2ab9a806dc83edc03e1 /redis/sentinel.py
parent8123a4865bc3f5ec781a84fad30a48f251beffe1 (diff)
downloadredis-py-02c7eef093854fd41ef1b6e9e8274204c69eed10.tar.gz
fixed __repr__ for clients created from sentinel. fixes #439
Diffstat (limited to 'redis/sentinel.py')
-rw-r--r--redis/sentinel.py26
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