summaryrefslogtreecommitdiffstats
path: root/ipalib/__init__.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2015-06-15 13:36:26 +0000
committerJan Cholasta <jcholast@redhat.com>2015-07-01 13:05:30 +0000
commit2b12bca660e5dd65256e67b0815392173428247d (patch)
tree594d6ddf6683ce7563ba12aaa10c9b5245ed48a9 /ipalib/__init__.py
parent4b277d04771bece11f5cc9fe04cc04d3f2ded165 (diff)
downloadfreeipa-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__.py16
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'