[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.host = socket.gethostname()
|
||||||
self.pid = os.getpid()
|
self.pid = os.getpid()
|
||||||
self.conn = conn
|
self.conn = conn
|
||||||
|
self.time = 600.0
|
||||||
|
|
||||||
def purge(self, Id=None):
|
def purge(self, Id=None):
|
||||||
"""
|
"""
|
||||||
|
@ -118,18 +119,21 @@ class LdapLockHolder:
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
host, pid, begin = self.getlock(item, value)
|
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)
|
self.removelock(item, value, Id, True)
|
||||||
elif host == self.host and pid == self.pid:
|
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:
|
elif host == self.host:
|
||||||
status = crans_utils.process_status(pid)
|
status = crans_utils.process_status(pid)
|
||||||
if status:
|
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:
|
else:
|
||||||
self.removelock(item, value, Id, True)
|
self.removelock(item, value, Id, True)
|
||||||
else:
|
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:
|
except ldap.NO_SUCH_OBJECT:
|
||||||
pass
|
pass
|
||||||
except LockFormatError:
|
except LockFormatError:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue