From 63b9f89b6f9ad39f662bd7127f8b870a6e6d4479 Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Mon, 24 Feb 2014 14:47:27 +0100 Subject: [PATCH] =?UTF-8?q?[ldap=5Flocks]=20Affichage=20du=20temps=20resta?= =?UTF-8?q?nt=20avant=20expiration=20d'un=20lock=20si=20une=20LockError=20?= =?UTF-8?q?est=20lev=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ldap_locks.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ldap_locks.py b/ldap_locks.py index 9bda296..76bce28 100644 --- a/ldap_locks.py +++ b/ldap_locks.py @@ -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: