diff options
author | Jan Cholasta <jcholast@redhat.com> | 2015-03-03 14:33:48 +0000 |
---|---|---|
committer | Tomas Babej <tbabej@redhat.com> | 2015-03-05 11:01:36 +0100 |
commit | dae6a1881354e57b58c79ffea0a75f524286855e (patch) | |
tree | e318fac565d1614c037ef880ab148e7049b47a96 /ipalib/__init__.py | |
parent | 2db741e847c60d712dbc8ee1cd65a978a78eb312 (diff) | |
download | freeipa-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__.py | 17 |
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' |