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>
This commit is contained in:
Stanislav Laznicka
2016-11-11 12:13:56 +01:00
committed by Jan Cholasta
parent eac6f52957
commit 83e72d7046
4 changed files with 39 additions and 21 deletions
@@ -27,3 +27,4 @@ plugin: update_read_replication_agreements_permission
plugin: update_idrange_baserid
plugin: update_passync_privilege_update
plugin: update_dnsserver_configuration_into_ldap
plugin: update_ldap_server_list
-16
View File
@@ -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.
@@ -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, ()
@@ -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()