diff options
Diffstat (limited to 'ipalib/plugable.py')
-rw-r--r-- | ipalib/plugable.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/ipalib/plugable.py b/ipalib/plugable.py index f298e97e..32cbe033 100644 --- a/ipalib/plugable.py +++ b/ipalib/plugable.py @@ -281,4 +281,13 @@ class Registrar(object): class API(ReadOnly): def __init__(self, registrar): for (base, plugins) in registrar: - pass + ns = NameSpace(self.__plugin_iter(base, plugins)) + assert not hasattr(self, base.__name__) + object.__setattr__(self, base.__name__, ns) + + def __plugin_iter(self, base, plugins): + assert issubclass(base.proxy, Proxy) + for cls in plugins: + plugin = cls(self) + assert plugin.api is self + yield base.proxy(plugin) |