diff options
Diffstat (limited to 'ipaclient/remote_plugins/__init__.py')
-rw-r--r-- | ipaclient/remote_plugins/__init__.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/ipaclient/remote_plugins/__init__.py b/ipaclient/remote_plugins/__init__.py index 93636fcb5..6454a4f4e 100644 --- a/ipaclient/remote_plugins/__init__.py +++ b/ipaclient/remote_plugins/__init__.py @@ -2,13 +2,23 @@ # Copyright (C) 2016 FreeIPA Contributors see COPYING for license # +from . import compat from . import schema +from ipaclient.plugins.rpcclient import rpcclient def get_package(api): if api.env.in_tree: from ipaserver import plugins else: - plugins = schema.get_package(api) + client = rpcclient(api) + client.finalize() + try: + plugins = schema.get_package(api, client) + except schema.NotAvailable: + plugins = compat.get_package(api, client) + finally: + if client.isconnected(): + client.disconnect() return plugins |