diff options
Diffstat (limited to 'ipaserver/install')
-rw-r--r-- | ipaserver/install/dsinstance.py | 16 | ||||
-rw-r--r-- | ipaserver/install/plugins/update_ldap_server_list.py | 38 | ||||
-rw-r--r-- | ipaserver/install/server/replicainstall.py | 5 |
3 files changed, 38 insertions, 21 deletions
diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py index f4cb2475d..49289d483 100644 --- a/ipaserver/install/dsinstance.py +++ b/ipaserver/install/dsinstance.py @@ -1144,22 +1144,6 @@ class DsInstance(service.Service): else: root_logger.debug("extdom plugin is already configured") - def replica_populate(self): - dn = DN(('cn', 'default'), ('ou', 'profile'), self.suffix) - try: - entry = self.admin_conn.get_entry(dn) - srvlist = entry.single_value.get('defaultServerList', '') - srvlist = srvlist.split() - if not self.fqdn in srvlist: - srvlist.append(self.fqdn) - attr = ' '.join(srvlist) - mod = [(ldap.MOD_REPLACE, 'defaultServerList', attr)] - self.admin_conn.modify_s(dn, mod) - except errors.NotFound: - pass - except ldap.TYPE_OR_VALUE_EXISTS: - pass - def find_subject_base(self): """ Try to find the current value of certificate subject base. diff --git a/ipaserver/install/plugins/update_ldap_server_list.py b/ipaserver/install/plugins/update_ldap_server_list.py new file mode 100644 index 000000000..c77a1fe45 --- /dev/null +++ b/ipaserver/install/plugins/update_ldap_server_list.py @@ -0,0 +1,38 @@ +# +# Copyright (C) 2016 FreeIPA Contributors see COPYING for license +# + +from ipalib import Registry +from ipalib import Updater +from ipalib import errors +from ipapython.dn import DN + +register = Registry() + + +@register() +class update_ldap_server_list(Updater): + """ + Update defaultServerList, an option that helps Solaris + clients discover LDAP server replicas. + """ + def execute(self, **options): + ldap = self.api.Backend.ldap2 + + dn = DN(('cn', 'default'), ('ou', 'profile'), self.api.env.basedn) + try: + entry = ldap.get_entry(dn) + srvlist = entry.single_value.get('defaultServerList', '') + srvlist = srvlist.split() + if not self.api.env.host in srvlist: + srvlist.append(self.api.env.host) + attr = ' '.join(srvlist) + entry['defaultServerList'] = attr + ldap.update_entry(entry) + except errors.NotFound: + pass + except ldap.TYPE_OR_VALUE_EXISTS: + pass + + # no restart, no updates + return False, () diff --git a/ipaserver/install/server/replicainstall.py b/ipaserver/install/server/replicainstall.py index 7e043746f..ba9b0f098 100644 --- a/ipaserver/install/server/replicainstall.py +++ b/ipaserver/install/server/replicainstall.py @@ -897,8 +897,6 @@ def install(installer): print("Configuration of client side components failed!") raise RuntimeError("Failed to configure the client") - ds.replica_populate() - # update DNA shared config entry is done as far as possible # from restart to avoid waiting for its creation ds.update_dna_shared_config() @@ -1529,9 +1527,6 @@ def promote(installer): config.dirman_password, kra_cert_bundle=ca_data) - - ds.replica_populate() - # update DNA shared config entry is done as far as possible # from restart to avoid waiting for its creation ds.update_dna_shared_config() |