summaryrefslogtreecommitdiffstats
path: root/ipalib/__init__.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2015-03-03 14:33:48 +0000
committerTomas Babej <tbabej@redhat.com>2015-03-05 11:01:36 +0100
commitdae6a1881354e57b58c79ffea0a75f524286855e (patch)
treee318fac565d1614c037ef880ab148e7049b47a96 /ipalib/__init__.py
parent2db741e847c60d712dbc8ee1cd65a978a78eb312 (diff)
downloadfreeipa-dae6a1881354e57b58c79ffea0a75f524286855e.tar.gz
freeipa-dae6a1881354e57b58c79ffea0a75f524286855e.tar.xz
freeipa-dae6a1881354e57b58c79ffea0a75f524286855e.zip
ipalib: Move plugin package setup to ipalib-specific API subclass
https://fedorahosted.org/freeipa/ticket/3090 Reviewed-By: Tomas Babej <tbabej@redhat.com>
Diffstat (limited to 'ipalib/__init__.py')
-rw-r--r--ipalib/__init__.py17
1 files changed, 16 insertions, 1 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py
index 6b1ec573a..381f38162 100644
--- a/ipalib/__init__.py
+++ b/ipalib/__init__.py
@@ -898,6 +898,21 @@ else:
__version__ = '%d.%d.%d.%s.%d' % version_info
+class API(plugable.API):
+ def __init__(self, allowed):
+ super(API, self).__init__(allowed, ['ipalib'])
+
+ def bootstrap(self, parser=None, **overrides):
+ super(API, self).bootstrap(parser, **overrides)
+
+ if self.env.context in ('server', 'lite'):
+ self.packages.append('ipaserver')
+ if self.env.context in ('installer', 'updates'):
+ self.packages.append('ipaserver/install/plugins')
+ if self.env.context in ('advise',):
+ self.packages.append('ipaserver/advise/plugins')
+
+
def create_api(mode='dummy'):
"""
Return standard `plugable.API` instance.
@@ -915,7 +930,7 @@ def create_api(mode='dummy'):
- `backend.Backend`
"""
- api = plugable.API(Command, Object, Method, Backend, Updater, Advice)
+ api = API((Command, Object, Method, Backend, Updater, Advice))
if mode is not None:
api.env.mode = mode
assert mode != 'production'