From c1b6f1ef24eea6859b41ee892b3db4e3eb2f9573 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Thu, 16 Jun 2016 08:48:49 +0200 Subject: [PATCH] Make list of available dcs implementations unique. And exclude AbstractDCS from it. --- patroni/dcs/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/patroni/dcs/__init__.py b/patroni/dcs/__init__.py index c068ef8e..9662a708 100644 --- a/patroni/dcs/__init__.py +++ b/patroni/dcs/__init__.py @@ -31,7 +31,7 @@ def parse_connection_string(value): def get_dcs(config): - available_implementations = [] + available_implementations = set() for name in os.listdir(os.path.dirname(__file__)): if name.endswith('.py') and not name.startswith('__'): # find module module = importlib.import_module(__package__ + '.' + name[:-3]) @@ -40,8 +40,8 @@ def get_dcs(config): value = getattr(module, name) name = name.lower() # try to find implementation of AbstractDCS interface - if inspect.isclass(value) and issubclass(value, AbstractDCS): - available_implementations.append(name) + if inspect.isclass(value) and issubclass(value, AbstractDCS) and value != AbstractDCS: + available_implementations.add(name) if name in config: # which has configuration section in the config file # propagate some parameters config[name].update({p: config[p] for p in ('namespace', 'name',