mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
ipatests: wait for SSSD to become online in backup/restore tests
The backup/restore tests are calling 'id admin' after restore to make sure that the user name can be resolved after a restore. The test should wait for SSSD backend to become online before doing any check, otherwise there is a risk that the call to 'id admin' fails. Fixes: https://pagure.io/freeipa/issue/8228 Signed-off-by: Florence Blanc-Renaud <flo@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com> Reviewed-By: Sergey Orlov <sorlov@redhat.com>
This commit is contained in:
parent
d23322434f
commit
3753862401
@ -2130,3 +2130,27 @@ def wait_for_request(host, request_id, timeout=120):
|
|||||||
raise RuntimeError("request timed out")
|
raise RuntimeError("request timed out")
|
||||||
|
|
||||||
return state
|
return state
|
||||||
|
|
||||||
|
|
||||||
|
def wait_for_sssd_domain_status_online(host, timeout=120):
|
||||||
|
"""Wait up to timeout (in seconds) for sssd domain status to become Online
|
||||||
|
|
||||||
|
The method is checking the Online Status of the domain as displayed by
|
||||||
|
the command sssctl domain-status <domain> -o and returns successfully
|
||||||
|
when the status is Online.
|
||||||
|
This call is useful for instance when 389-ds has been stopped and restarted
|
||||||
|
as SSSD may need a while before it reconnects and switches from Offline
|
||||||
|
mode to Online.
|
||||||
|
"""
|
||||||
|
pattern = re.compile(r'Online status: (?P<state>.*)\n')
|
||||||
|
for _i in range(0, timeout, 5):
|
||||||
|
result = host.run_command(
|
||||||
|
[paths.SSSCTL, "domain-status", host.domain.name, "-o"]
|
||||||
|
)
|
||||||
|
match = pattern.search(result.stdout_text)
|
||||||
|
state = match.group('state')
|
||||||
|
if state == 'Online':
|
||||||
|
break
|
||||||
|
time.sleep(5)
|
||||||
|
else:
|
||||||
|
raise RuntimeError("SSSD still offline")
|
||||||
|
@ -151,6 +151,8 @@ def restore_checker(host):
|
|||||||
|
|
||||||
yield
|
yield
|
||||||
|
|
||||||
|
# Wait for SSSD to become online before doing any other check
|
||||||
|
tasks.wait_for_sssd_domain_status_online(host)
|
||||||
tasks.kinit_admin(host)
|
tasks.kinit_admin(host)
|
||||||
|
|
||||||
for (check, assert_func), expected in zip(CHECKS, results):
|
for (check, assert_func), expected in zip(CHECKS, results):
|
||||||
|
Loading…
Reference in New Issue
Block a user