From ea98b28519fa8e6b876b0d9c6876dfbf346f26e9 Mon Sep 17 00:00:00 2001 From: Julien Danjou Date: Tue, 15 Nov 2016 15:41:25 +0100 Subject: [PATCH] Factorize member_id in the base coordinator class Any coordinator that implements (and they all should) group membership needs a member_id field and copy it to self. Just do that by default for all driver at __init__ time. Change-Id: I66d82815afd4c6e9354212e5ab3fba17931c1bbc --- tooz/coordination.py | 7 ++++--- tooz/drivers/consul.py | 2 +- tooz/drivers/etcd.py | 2 +- tooz/drivers/file.py | 3 +-- tooz/drivers/ipc.py | 2 +- tooz/drivers/memcached.py | 3 +-- tooz/drivers/mysql.py | 2 +- tooz/drivers/pgsql.py | 2 +- tooz/drivers/redis.py | 3 +-- tooz/drivers/zookeeper.py | 3 +-- 10 files changed, 13 insertions(+), 16 deletions(-) diff --git a/tooz/coordination.py b/tooz/coordination.py index a9e24b6d..1b6dedf0 100644 --- a/tooz/coordination.py +++ b/tooz/coordination.py @@ -231,8 +231,9 @@ class CoordinationDriver(object): enum member(s) that can be used to interogate how this driver works. """ - def __init__(self): + def __init__(self, member_id): super(CoordinationDriver, self).__init__() + self._member_id = member_id self._started = False self._hooks_join_group = collections.defaultdict(Hooks) self._hooks_leave_group = collections.defaultdict(Hooks) @@ -610,8 +611,8 @@ class CoordinationDriverCachedRunWatchers(CoordinationDriver): """ - def __init__(self): - super(CoordinationDriverCachedRunWatchers, self).__init__() + def __init__(self, member_id): + super(CoordinationDriverCachedRunWatchers, self).__init__(member_id) # A cache for group members self._group_members = collections.defaultdict(set) self._joined_groups = set() diff --git a/tooz/drivers/consul.py b/tooz/drivers/consul.py index ac69805f..bad4c64f 100644 --- a/tooz/drivers/consul.py +++ b/tooz/drivers/consul.py @@ -107,7 +107,7 @@ class ConsulDriver(coordination.CoordinationDriver): DEFAULT_PORT = 8500 def __init__(self, member_id, parsed_url, options): - super(ConsulDriver, self).__init__() + super(ConsulDriver, self).__init__(member_id) options = utils.collapse(options) self._executor = utils.ProxyExecutor.build("Consul", options) self._host = parsed_url.hostname diff --git a/tooz/drivers/etcd.py b/tooz/drivers/etcd.py index 34bfa35e..ee508600 100644 --- a/tooz/drivers/etcd.py +++ b/tooz/drivers/etcd.py @@ -200,7 +200,7 @@ class EtcdDriver(coordination.CoordinationDriver): lock_encoder_cls = utils.Base64LockEncoder def __init__(self, member_id, parsed_url, options): - super(EtcdDriver, self).__init__() + super(EtcdDriver, self).__init__(member_id) host = parsed_url.hostname or self.DEFAULT_HOST port = parsed_url.port or self.DEFAULT_PORT options = utils.collapse(options) diff --git a/tooz/drivers/file.py b/tooz/drivers/file.py index 803aa761..b966b72b 100644 --- a/tooz/drivers/file.py +++ b/tooz/drivers/file.py @@ -205,8 +205,7 @@ class FileDriver(coordination.CoordinationDriverCachedRunWatchers): def __init__(self, member_id, parsed_url, options): """Initialize the file driver.""" - super(FileDriver, self).__init__() - self._member_id = member_id + super(FileDriver, self).__init__(member_id) self._dir = self._normalize_path(parsed_url.path) self._executor = utils.ProxyExecutor.build("File", options) self._group_dir = os.path.join(self._dir, 'groups') diff --git a/tooz/drivers/ipc.py b/tooz/drivers/ipc.py index d9caf122..0dcd3aaf 100644 --- a/tooz/drivers/ipc.py +++ b/tooz/drivers/ipc.py @@ -166,7 +166,7 @@ class IPCDriver(coordination.CoordinationDriver): def __init__(self, member_id, parsed_url, options): """Initialize the IPC driver.""" - super(IPCDriver, self).__init__() + super(IPCDriver, self).__init__(member_id) self._executor = utils.ProxyExecutor.build("IPC", options) def _start(self): diff --git a/tooz/drivers/memcached.py b/tooz/drivers/memcached.py index 0d3a92b0..97205ff3 100644 --- a/tooz/drivers/memcached.py +++ b/tooz/drivers/memcached.py @@ -216,10 +216,9 @@ class MemcachedDriver(coordination.CoordinationDriverCachedRunWatchers): STILL_ALIVE = b"It's alive!" def __init__(self, member_id, parsed_url, options): - super(MemcachedDriver, self).__init__() + super(MemcachedDriver, self).__init__(member_id) options = utils.collapse(options) self._options = options - self._member_id = member_id self._executor = utils.ProxyExecutor.build("Memcached", options) self.host = (parsed_url.hostname or "localhost", parsed_url.port or 11211) diff --git a/tooz/drivers/mysql.py b/tooz/drivers/mysql.py index e98979f2..8889708e 100644 --- a/tooz/drivers/mysql.py +++ b/tooz/drivers/mysql.py @@ -117,7 +117,7 @@ class MySQLDriver(coordination.CoordinationDriver): def __init__(self, member_id, parsed_url, options): """Initialize the MySQL driver.""" - super(MySQLDriver, self).__init__() + super(MySQLDriver, self).__init__(member_id) self._parsed_url = parsed_url self._options = utils.collapse(options) diff --git a/tooz/drivers/pgsql.py b/tooz/drivers/pgsql.py index a278f775..cb0b9b83 100644 --- a/tooz/drivers/pgsql.py +++ b/tooz/drivers/pgsql.py @@ -173,7 +173,7 @@ class PostgresDriver(coordination.CoordinationDriver): def __init__(self, member_id, parsed_url, options): """Initialize the PostgreSQL driver.""" - super(PostgresDriver, self).__init__() + super(PostgresDriver, self).__init__(member_id) self._parsed_url = parsed_url self._options = utils.collapse(options) diff --git a/tooz/drivers/redis.py b/tooz/drivers/redis.py index 814b8334..58513dff 100644 --- a/tooz/drivers/redis.py +++ b/tooz/drivers/redis.py @@ -315,7 +315,7 @@ return 1 """ def __init__(self, member_id, parsed_url, options): - super(RedisDriver, self).__init__() + super(RedisDriver, self).__init__(member_id) options = utils.collapse(options, exclude=self.CLIENT_LIST_ARGS) self._parsed_url = parsed_url self._options = options @@ -332,7 +332,6 @@ return 1 self._beat_prefix = self._namespace + b"_beats" self._groups = self._namespace + b"_groups" self._client = None - self._member_id = utils.to_binary(member_id, encoding=self._encoding) self._acquired_locks = set() self._executor = utils.ProxyExecutor.build("Redis", options) self._started = False diff --git a/tooz/drivers/zookeeper.py b/tooz/drivers/zookeeper.py index 00a4f051..2dc2e461 100644 --- a/tooz/drivers/zookeeper.py +++ b/tooz/drivers/zookeeper.py @@ -135,9 +135,8 @@ class KazooDriver(coordination.CoordinationDriverCachedRunWatchers): """ def __init__(self, member_id, parsed_url, options): - super(KazooDriver, self).__init__() + super(KazooDriver, self).__init__(member_id) options = utils.collapse(options, exclude=['hosts']) - self._member_id = member_id self.timeout = int(options.get('timeout', '10')) self._namespace = options.get('namespace', self.TOOZ_NAMESPACE) self._coord = self._make_client(parsed_url, options)