summaryrefslogtreecommitdiffstats
path: root/ipaserver/install
diff options
context:
space:
mode:
Diffstat (limited to 'ipaserver/install')
-rw-r--r--ipaserver/install/dsinstance.py16
-rw-r--r--ipaserver/install/plugins/update_ldap_server_list.py38
-rw-r--r--ipaserver/install/server/replicainstall.py5
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()