From dae6a1881354e57b58c79ffea0a75f524286855e Mon Sep 17 00:00:00 2001 From: Jan Cholasta Date: Tue, 3 Mar 2015 14:33:48 +0000 Subject: ipalib: Move plugin package setup to ipalib-specific API subclass https://fedorahosted.org/freeipa/ticket/3090 Reviewed-By: Tomas Babej --- ipalib/__init__.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'ipalib/__init__.py') 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' -- cgit