mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Replace IPAdmin.checkTask by replication.wait_for_task
The method was only used for waiting, not actual checking. Part of the work for: https://fedorahosted.org/freeipa/ticket/2660
This commit is contained in:
committed by
Martin Kosek
parent
b69f6983e4
commit
5271eb217c
@@ -110,6 +110,27 @@ def enable_replication_version_checking(hostname, realm, dirman_passwd):
|
||||
else:
|
||||
conn.unbind()
|
||||
|
||||
|
||||
def wait_for_task(conn, dn):
|
||||
"""Check task status
|
||||
|
||||
Task is complete when the nsTaskExitCode attr is set.
|
||||
|
||||
:return: the task's return code
|
||||
"""
|
||||
assert isinstance(dn, DN)
|
||||
attrlist = [
|
||||
'nsTaskLog', 'nsTaskStatus', 'nsTaskExitCode', 'nsTaskCurrentItem',
|
||||
'nsTaskTotalItems']
|
||||
while True:
|
||||
entry = conn.get_entry(dn, attrlist)
|
||||
if entry.getValue('nsTaskExitCode'):
|
||||
exit_code = int(entry.getValue('nsTaskExitCode'))
|
||||
break
|
||||
time.sleep(1)
|
||||
return exit_code
|
||||
|
||||
|
||||
class ReplicationManager(object):
|
||||
"""Manage replication agreements between DS servers, and sync
|
||||
agreements with Windows servers"""
|
||||
@@ -1206,7 +1227,7 @@ class ReplicationManager(object):
|
||||
|
||||
print "This may be safely interrupted with Ctrl+C"
|
||||
|
||||
self.conn.checkTask(dn, dowait=True)
|
||||
wait_for_task(self.conn, dn)
|
||||
|
||||
def abortcleanallruv(self, replicaId):
|
||||
"""
|
||||
@@ -1233,4 +1254,4 @@ class ReplicationManager(object):
|
||||
|
||||
print "This may be safely interrupted with Ctrl+C"
|
||||
|
||||
self.conn.checkTask(dn, dowait=True)
|
||||
wait_for_task(self.conn, dn)
|
||||
|
||||
Reference in New Issue
Block a user