diff options
author | Stanislav Laznicka <slaznick@redhat.com> | 2016-10-13 15:08:31 +0200 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2016-11-11 12:13:56 +0100 |
commit | 83e72d704630b9cc5a1f713dfee30601950eb5e9 (patch) | |
tree | 9a14580ca66824d2d4c0d9bf8b211295ab82a044 /ipaserver/install | |
parent | eac6f52957c361c219ad6048b515ddb62da31154 (diff) | |
download | freeipa-83e72d704630b9cc5a1f713dfee30601950eb5e9.tar.gz freeipa-83e72d704630b9cc5a1f713dfee30601950eb5e9.tar.xz freeipa-83e72d704630b9cc5a1f713dfee30601950eb5e9.zip |
Move ds.replica_populate to an update plugin
Replica populate can be applied with other update plugins.
https://fedorahosted.org/freeipa/ticket/6392
Reviewed-By: Martin Babinsky <mbabinsk@redhat.com>
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
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() |