summaryrefslogtreecommitdiffstats
path: root/ipaclient/remote_plugins/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipaclient/remote_plugins/__init__.py')
-rw-r--r--ipaclient/remote_plugins/__init__.py12
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