URL: https://github.com/freeipa/freeipa/pull/784 Author: flo-renaud Title: #784: ipa-replica-manage del (dl 0): remove server from defaultServerList Action: opened
PR body: """ ipa-replica-manage del should remove the server from the entry cn=default,ou=profile,$BASE The entry contains an attribute defaultServerList: srv1.domain.com srv2.domain.com srv3.domain.com The code calls srvlist = ret.single_value.get('defaultServerList') which means that srvlist contains a single value (string) containing all the servers separated by a space, and not a list of attribute values. Because of that, srvlist[0] corresponds to the first character of the value. The fix splits srvlist and not srvlist[0]. https://pagure.io/freeipa/issue/6946 """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/784/head:pr784 git checkout pr784
From 8f98b3eb08c2f7994017459c7bb3f9eeb9f50cd2 Mon Sep 17 00:00:00 2001 From: Florence Blanc-Renaud <f...@redhat.com> Date: Fri, 12 May 2017 09:54:40 +0200 Subject: [PATCH] ipa-replica-manage del (dl 0): remove server from defaultServerList ipa-replica-manage del should remove the server from the entry cn=default,ou=profile,$BASE The entry contains an attribute defaultServerList: srv1.domain.com srv2.domain.com srv3.domain.com The code calls srvlist = ret.single_value.get('defaultServerList') which means that srvlist contains a single value (string) containing all the servers separated by a space, and not a list of attribute values. Because of that, srvlist[0] corresponds to the first character of the value. The fix splits srvlist and not srvlist[0]. https://pagure.io/freeipa/issue/6946 --- ipaserver/install/replication.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ipaserver/install/replication.py b/ipaserver/install/replication.py index 3cd871e..f3bae53 100644 --- a/ipaserver/install/replication.py +++ b/ipaserver/install/replication.py @@ -1336,12 +1336,12 @@ def replica_cleanup(self, replica, realm, force=False): dn = DN(('cn', 'default'), ('ou', 'profile'), self.suffix) ret = self.conn.get_entry(dn) srvlist = ret.single_value.get('defaultServerList', '') - srvlist = srvlist[0].split() + srvlist = srvlist.split() if replica in srvlist: srvlist.remove(replica) attr = ' '.join(srvlist) - mod = [(ldap.MOD_REPLACE, 'defaultServerList', attr)] - self.conn.modify_s(dn, mod) + ret['defaultServerList'] = attr + self.conn.update_entry(ret) except errors.NotFound: pass except ldap.NO_SUCH_ATTRIBUTE:
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code