diff options
author | Jan Cholasta <jcholast@redhat.com> | 2016-06-02 10:12:26 +0200 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2016-06-03 09:00:34 +0200 |
commit | ec841e5d7ab29d08de294b3fa863a631cd50e30a (patch) | |
tree | 4242a4ad1a668074abd64298f580339a0712035c /ipalib/__init__.py | |
parent | f5fd2b87506366f29ffca88b4a03e27143c79eae (diff) | |
download | freeipa-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__.py | 15 |
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 |