summaryrefslogtreecommitdiffstats
path: root/ipalib/__init__.py
diff options
context:
space:
mode:
authorJan Cholasta <jcholast@redhat.com>2016-06-02 10:12:26 +0200
committerJan Cholasta <jcholast@redhat.com>2016-06-03 09:00:34 +0200
commitec841e5d7ab29d08de294b3fa863a631cd50e30a (patch)
tree4242a4ad1a668074abd64298f580339a0712035c /ipalib/__init__.py
parentf5fd2b87506366f29ffca88b4a03e27143c79eae (diff)
downloadfreeipa-ec841e5d7ab29d08de294b3fa863a631cd50e30a.tar.gz
freeipa-ec841e5d7ab29d08de294b3fa863a631cd50e30a.tar.xz
freeipa-ec841e5d7ab29d08de294b3fa863a631cd50e30a.zip
ipaclient: implement thin client
Dynamically create plugin package for the remote server with modules and commands based on the API schema when client API is finalizes. For in-tree API instances, use ipalib.plugins directly. https://fedorahosted.org/freeipa/ticket/4739 Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipalib/__init__.py')
-rw-r--r--ipalib/__init__.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py
index dffe2315e..0070e62db 100644
--- a/ipalib/__init__.py
+++ b/ipalib/__init__.py
@@ -907,15 +907,20 @@ class API(plugable.API):
@property
def packages(self):
- import ipalib.plugins
- result = (ipalib.plugins,)
-
if self.env.in_server:
+ import ipalib.plugins
import ipaserver.plugins
- result += (ipaserver.plugins,)
+ result = (
+ ipalib.plugins,
+ ipaserver.plugins,
+ )
else:
+ import ipaclient.remote_plugins
import ipaclient.plugins
- result += (ipaclient.plugins,)
+ result = (
+ ipaclient.remote_plugins.get_package(self),
+ ipaclient.plugins,
+ )
if self.env.context in ('installer', 'updates'):
import ipaserver.install.plugins