From 3839040092785db79fd29280fb862e991d2e3ce5 Mon Sep 17 00:00:00 2001 From: "Joshua M. Boniface" Date: Wed, 21 Oct 2020 10:46:41 -0400 Subject: [PATCH] Add exclusive lock function --- daemon-common/zkhandler.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/daemon-common/zkhandler.py b/daemon-common/zkhandler.py index 1649c3b9..8f9763b6 100644 --- a/daemon-common/zkhandler.py +++ b/daemon-common/zkhandler.py @@ -137,3 +137,19 @@ def readlock(zk_conn, key): lock_id = str(uuid.uuid1()) lock = zk_conn.ReadLock('{}'.format(key), lock_id) return lock + +# Exclusive lock function +def exclusivelock(zk_conn, key): + count = 1 + while True: + try: + lock_id = str(uuid.uuid1()) + lock = zk_conn.Lock('{}'.format(key), lock_id) + break + except Exception: + count += 1 + if count > 5: + break + else: + continue + return lock