diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-02-07 10:00:37 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2013-02-14 14:56:28 -0500 |
commit | ff0048a3a26c9076c8052a8c7be171e4364f0d09 (patch) | |
tree | 71d260915f46d65ae2794ab22dbe32181bd5d05f /src/lib/Bcfg2/Utils.py | |
parent | 9d0e6991fc23c073efc0db6bf10e1081f6725e55 (diff) | |
download | bcfg2-ff0048a3a26c9076c8052a8c7be171e4364f0d09.tar.gz bcfg2-ff0048a3a26c9076c8052a8c7be171e4364f0d09.tar.bz2 bcfg2-ff0048a3a26c9076c8052a8c7be171e4364f0d09.zip |
moved common file locking code into Bcfg2.Utils
Diffstat (limited to 'src/lib/Bcfg2/Utils.py')
-rw-r--r-- | src/lib/Bcfg2/Utils.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/Bcfg2/Utils.py b/src/lib/Bcfg2/Utils.py index ba17e1a63..247e4f16b 100644 --- a/src/lib/Bcfg2/Utils.py +++ b/src/lib/Bcfg2/Utils.py @@ -2,6 +2,7 @@ used by both client and server. Stuff that doesn't fit anywhere else. """ +import fcntl from Bcfg2.Compat import any # pylint: disable=W0622 @@ -65,3 +66,12 @@ class PackedDigitRange(object): def __len__(self): return sum(r[1] - r[0] + 1 for r in self.ranges) + len(self.ints) + + +def locked(fd): + """ Acquire a lock on a file """ + try: + fcntl.lockf(fd, fcntl.LOCK_EX | fcntl.LOCK_NB) + except IOError: + return True + return False |