summaryrefslogtreecommitdiffstats
path: root/ipa-client
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2013-10-04 10:23:16 +0200
committerPetr Viktorin <pviktori@redhat.com>2013-10-04 15:33:58 +0200
commite01a28b584b8721d12a0b65fe4fdac507327f7da (patch)
tree1d1dd2eb4a6cfa99f8324b899a33fbec1abb7f52 /ipa-client
parent321e8635ae74b9e494047ac22d384dfd92a9a28e (diff)
downloadfreeipa-e01a28b584b8721d12a0b65fe4fdac507327f7da.tar.gz
freeipa-e01a28b584b8721d12a0b65fe4fdac507327f7da.tar.xz
freeipa-e01a28b584b8721d12a0b65fe4fdac507327f7da.zip
ipa-client-install: Use direct RPC instead of api.Command
To make sure the installation works with older servers, use XML-RPC directly, with a version set explicitly so the request is not rejected. RPC was chosen over ldapmodify, because going through the API allows the server to process the request properly, or even cleanly reject it if there are incompatible changes in future versions. https://fedorahosted.org/freeipa/ticket/3931
Diffstat (limited to 'ipa-client')
-rwxr-xr-xipa-client/ipa-install/ipa-client-install16
1 files changed, 13 insertions, 3 deletions
diff --git a/ipa-client/ipa-install/ipa-client-install b/ipa-client/ipa-install/ipa-client-install
index fdfadee7..e23e6dc5 100755
--- a/ipa-client/ipa-install/ipa-client-install
+++ b/ipa-client/ipa-install/ipa-client-install
@@ -1467,9 +1467,13 @@ def update_ssh_keys(server, hostname, ssh_dir, create_sshfp):
f.close()
try:
- result = api.Command['host_mod'](unicode(hostname),
+ # Use the RPC directly so older servers are supported
+ api.Backend.xmlclient.forward(
+ 'host_mod',
+ unicode(hostname),
ipasshpubkey=[pk.openssh() for pk in pubkeys],
- updatedns=False
+ updatedns=False,
+ version=u'2.26', # this version adds support for SSH public keys
)
except errors.EmptyModlist:
pass
@@ -2373,7 +2377,13 @@ def install(options, env, fstore, statestore):
'Cannot connect to the server due to generic error: %s', str(e))
return CLIENT_INSTALL_ERROR
- remote_env = api.Command['env'](server=True)['result']
+ # Use the RPC directly so older servers are supported
+ result = api.Backend.xmlclient.forward(
+ 'env',
+ server=True,
+ version=u'2.0',
+ )
+ remote_env = result['result']
if not remote_env['enable_ra']:
disable_ra()