diff options
Diffstat (limited to 'ipalib/plugable.py')
-rw-r--r-- | ipalib/plugable.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/ipalib/plugable.py b/ipalib/plugable.py index 80349090..70743f5a 100644 --- a/ipalib/plugable.py +++ b/ipalib/plugable.py @@ -289,9 +289,15 @@ class Registrar(object): class API(ReadOnly): - def __init__(self, registrar): + def __init__(self, *allowed): + object.__setattr__(self, 'register', Registrar(*allowed)) object.__setattr__(self, '_API__plugins', []) - for (base, plugins) in registrar: + + def __call__(self): + """ + Finalize the registration, instantiate the plugins. + """ + for (base, plugins) in self.register: ns = NameSpace(self.__plugin_iter(base, plugins)) assert not hasattr(self, base.__name__) object.__setattr__(self, base.__name__, ns) |