[ldap_locks] Affichage du temps restant avant expiration d'un lock si une LockError est levée
This commit is contained in:
parent
954ba580b6
commit
63b9f89b6f
1 changed files with 8 additions and 4 deletions
|
@ -79,6 +79,7 @@ class LdapLockHolder:
|
|||
self.host = socket.gethostname()
|
||||
self.pid = os.getpid()
|
||||
self.conn = conn
|
||||
self.time = 600.0
|
||||
|
||||
def purge(self, Id=None):
|
||||
"""
|
||||
|
@ -118,18 +119,21 @@ class LdapLockHolder:
|
|||
"""
|
||||
try:
|
||||
host, pid, begin = self.getlock(item, value)
|
||||
if time.time() - begin >= 600.0:
|
||||
if time.time() - begin >= self.time:
|
||||
self.removelock(item, value, Id, True)
|
||||
elif host == self.host and pid == self.pid:
|
||||
raise LdapLockedByYou("La donnée %r=%r est lockée par vous-même." % (item, value))
|
||||
time_left = self.time - (time.time() - begin)
|
||||
raise LdapLockedByYou("La donnée %r=%r est lockée par vous-même pour encore %ds." % (item, value, time_left))
|
||||
elif host == self.host:
|
||||
status = crans_utils.process_status(pid)
|
||||
if status:
|
||||
raise LdapLockedByOther("La donnée %r=%r est lockée par un processus actif." % (item, value))
|
||||
time_left = self.time - (time.time() - begin)
|
||||
raise LdapLockedByOther("La donnée %r=%r est lockée par un processus actif pour encore %ds." % (item, value, time_left))
|
||||
else:
|
||||
self.removelock(item, value, Id, True)
|
||||
else:
|
||||
raise LdapLockedByOther("La donnée %r=%r est lockée depuis une autre machine." % (item, value))
|
||||
time_left = self.time - (time.time() - begin)
|
||||
raise LdapLockedByOther("La donnée %r=%r est lockée depuis une autre machine pour encore %ds." % (item, value, time_left))
|
||||
except ldap.NO_SUCH_OBJECT:
|
||||
pass
|
||||
except LockFormatError:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue