mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Use common replication wait timeout of 5min
Instead of multiple timeout values all over the code base, all replication waits now use a common timeout value from api.env of 5 minutes. Waiting for HTTP/replica principal takes 90 to 120 seconds, so 5 minutes seem like a sufficient value for slow setups. Fixes: https://pagure.io/freeipa/issue/7595 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Fraser Tweedale <ftweedal@redhat.com>
This commit is contained in:
@@ -149,6 +149,8 @@ DEFAULT_CONFIG = (
|
||||
('startup_timeout', 300),
|
||||
# How long http connection should wait for reply [seconds].
|
||||
('http_timeout', 30),
|
||||
# How long to wait for an entry to appear on a replica
|
||||
('replication_wait_timeout', 300),
|
||||
|
||||
# Web Application mount points
|
||||
('mount_ipa', '/ipa/'),
|
||||
|
||||
@@ -5,6 +5,7 @@ from __future__ import print_function, absolute_import
|
||||
import enum
|
||||
import logging
|
||||
|
||||
from ipalib import api
|
||||
from ipaserver.secrets.kem import IPAKEMKeys, KEMLdap
|
||||
from ipaserver.secrets.client import CustodiaClient
|
||||
from ipaplatform.paths import paths
|
||||
@@ -212,7 +213,8 @@ class CustodiaInstance(SimpleServiceInstance):
|
||||
cli = self._get_custodia_client()
|
||||
cli.fetch_key('dm/DMHash')
|
||||
|
||||
def _wait_keys(self, timeout=300):
|
||||
def _wait_keys(self):
|
||||
timeout = api.env.replication_wait_timeout
|
||||
deadline = int(time.time()) + timeout
|
||||
logger.info("Waiting up to %s seconds to see our keys "
|
||||
"appear on host %s", timeout, self.ldap_uri)
|
||||
|
||||
@@ -607,7 +607,11 @@ class HTTPInstance(service.Service):
|
||||
else:
|
||||
remote_ldap.simple_bind(ipaldap.DIRMAN_DN,
|
||||
self.dm_password)
|
||||
replication.wait_for_entry(remote_ldap, service_dn, timeout=60)
|
||||
replication.wait_for_entry(
|
||||
remote_ldap,
|
||||
service_dn,
|
||||
timeout=api.env.replication_wait_timeout
|
||||
)
|
||||
|
||||
def migrate_to_mod_ssl(self):
|
||||
"""For upgrades only, migrate from mod_nss to mod_ssl"""
|
||||
|
||||
@@ -408,13 +408,16 @@ class KrbInstance(service.Service):
|
||||
def _wait_for_replica_kdc_entry(self):
|
||||
master_dn = self.api.Object.server.get_dn(self.fqdn)
|
||||
kdc_dn = DN(('cn', 'KDC'), master_dn)
|
||||
|
||||
ldap_uri = 'ldap://{}'.format(self.master_fqdn)
|
||||
|
||||
ldap_uri = ipaldap.get_ldap_uri(self.master_fqdn)
|
||||
with ipaldap.LDAPClient(
|
||||
ldap_uri, cacert=paths.IPA_CA_CRT) as remote_ldap:
|
||||
ldap_uri, cacert=paths.IPA_CA_CRT, start_tls=True
|
||||
) as remote_ldap:
|
||||
remote_ldap.gssapi_bind()
|
||||
replication.wait_for_entry(remote_ldap, kdc_dn, timeout=60)
|
||||
replication.wait_for_entry(
|
||||
remote_ldap,
|
||||
kdc_dn,
|
||||
timeout=api.env.replication_wait_timeout
|
||||
)
|
||||
|
||||
def _call_certmonger(self, certmonger_ca='IPA'):
|
||||
subject = str(DN(('cn', self.fqdn), self.subject_base))
|
||||
|
||||
@@ -161,7 +161,7 @@ def wait_for_task(conn, dn):
|
||||
return exit_code
|
||||
|
||||
|
||||
def wait_for_entry(connection, dn, timeout=7200, attr=None, attrvalue='*',
|
||||
def wait_for_entry(connection, dn, timeout, attr=None, attrvalue='*',
|
||||
quiet=True):
|
||||
"""Wait for entry and/or attr to show up
|
||||
"""
|
||||
@@ -751,7 +751,9 @@ class ReplicationManager(object):
|
||||
# that we will have to set the memberof fixup task
|
||||
self.need_memberof_fixup = True
|
||||
|
||||
wait_for_entry(a_conn, entry.dn)
|
||||
wait_for_entry(
|
||||
a_conn, entry.dn, timeout=api.env.replication_wait_timeout
|
||||
)
|
||||
|
||||
def needs_memberof_fixup(self):
|
||||
return self.need_memberof_fixup
|
||||
|
||||
Reference in New Issue
Block a user