diff options
author | Jan Cholasta <jcholast@redhat.com> | 2015-06-15 13:36:26 +0000 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2015-07-01 13:05:30 +0000 |
commit | 2b12bca660e5dd65256e67b0815392173428247d (patch) | |
tree | 594d6ddf6683ce7563ba12aaa10c9b5245ed48a9 /ipalib/__init__.py | |
parent | 4b277d04771bece11f5cc9fe04cc04d3f2ded165 (diff) | |
download | freeipa-2b12bca660e5dd65256e67b0815392173428247d.tar.gz freeipa-2b12bca660e5dd65256e67b0815392173428247d.tar.xz freeipa-2b12bca660e5dd65256e67b0815392173428247d.zip |
plugable: Specify plugin base classes and modules using API properties
https://fedorahosted.org/freeipa/ticket/3090
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
Diffstat (limited to 'ipalib/__init__.py')
-rw-r--r-- | ipalib/__init__.py | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py index 4a66e7dd4..44aacd091 100644 --- a/ipalib/__init__.py +++ b/ipalib/__init__.py @@ -899,16 +899,16 @@ else: class API(plugable.API): - def __init__(self, allowed): - super(API, self).__init__(allowed, ['ipalib.plugins.*']) - - def bootstrap(self, parser=None, **overrides): - super(API, self).bootstrap(parser, **overrides) + bases = (Command, Object, Method, Backend, Updater) + @property + def modules(self): + result = ('ipalib.plugins.*',) if self.env.in_server: - self.modules.append('ipaserver.plugins.*') + result += ('ipaserver.plugins.*',) if self.env.context in ('installer', 'updates'): - self.modules.append('ipaserver.install.plugins.*') + result += ('ipaserver.install.plugins.*',) + return result def create_api(mode='dummy'): @@ -926,7 +926,7 @@ def create_api(mode='dummy'): - `backend.Backend` """ - api = API((Command, Object, Method, Backend, Updater)) + api = API() if mode is not None: api.env.mode = mode assert mode != 'production' |