diff options
author | Brian Dolbec <dolsen@gentoo.org> | 2013-01-19 17:50:26 -0800 |
---|---|---|
committer | Brian Dolbec <dolsen@gentoo.org> | 2014-12-31 21:58:05 -0800 |
commit | cd9ed84add5379f07f46faea102f24ec51754f54 (patch) | |
tree | a53706e603689ccab7f3f3fec83fbe24fd05bea0 /catalyst/lock.py | |
parent | Some options cleanup, unifying their use, reducing redundancy. (diff) | |
download | catalyst-cd9ed84add5379f07f46faea102f24ec51754f54.tar.gz catalyst-cd9ed84add5379f07f46faea102f24ec51754f54.tar.bz2 catalyst-cd9ed84add5379f07f46faea102f24ec51754f54.zip |
Move LockInUse from support.py to lock.py, fix bad execption raising, pyflakes cleanup
Diffstat (limited to 'catalyst/lock.py')
-rw-r--r-- | catalyst/lock.py | 55 |
1 files changed, 31 insertions, 24 deletions
diff --git a/catalyst/lock.py b/catalyst/lock.py index 2d10d2fa..78968cb0 100644 --- a/catalyst/lock.py +++ b/catalyst/lock.py @@ -3,14 +3,26 @@ import os import fcntl import errno import sys -import string import time -from catalyst.support import * +from catalyst.support import CatalystError, normpath def writemsg(mystr): sys.stderr.write(mystr) sys.stderr.flush() + +class LockInUse(Exception): + def __init__(self, message): + if message: + #(type,value)=sys.exc_info()[:2] + #if value!=None: + #print + #kprint traceback.print_exc(file=sys.stdout) + print + print "!!! catalyst lock file in use: "+message + print + + class LockDir: locking_method=fcntl.flock lock_dirs_in_use=[] @@ -109,7 +121,8 @@ class LockDir: def fcntl_lock(self,locktype): if self.myfd==None: if not os.path.exists(os.path.dirname(self.lockdir)): - raise DirectoryNotFound, os.path.dirname(self.lockdir) + raise CatalystError("DirectoryNotFound: %s" + % os.path.dirname(self.lockdir)) if not os.path.exists(self.lockfile): old_mask=os.umask(000) self.myfd = os.open(self.lockfile, os.O_CREAT|os.O_RDWR,0660) @@ -168,7 +181,7 @@ class LockDir: print "lockfile does not exist '%s'" % self.lockfile if (self.myfd != None): try: - os.close(myfd) + os.close(self.myfd) self.myfd=None except: pass @@ -251,12 +264,13 @@ class LockDir: self.add_hardlock_file_to_cleanup() if not os.path.exists(self.myhardlock): - raise FileNotFound, "Created lockfile is missing: %(filename)s" % {"filename":self.myhardlock} + raise CatalystError("FileNotFound: Created lockfile is missing: " + "%(filename)s" % {"filename":self.myhardlock}) try: - res = os.link(self.myhardlock, self.lockfile) - except SystemExit, e: + os.link(self.myhardlock, self.lockfile) + except SystemExit: raise - except Exception, e: + except Exception: # if "DEBUG" in self.settings: # print "lockfile(): Hardlink: Link failed." # print "Exception: ",e @@ -286,7 +300,7 @@ class LockDir: os.unlink(self.myhardlock) if os.path.exists(self.lockfile): os.unlink(self.lockfile) - except SystemExit, e: + except SystemExit: raise except: writemsg("Something strange happened to our hardlink locks.\n") @@ -314,7 +328,7 @@ class LockDir: try: myhls = os.stat(link) mylfs = os.stat(lock) - except SystemExit, e: + except SystemExit: raise except: myhls = None @@ -340,7 +354,7 @@ class LockDir: pass def hardlock_cleanup(self,path): - mypid = str(os.getpid()) + #mypid = str(os.getpid()) myhost = os.uname()[1] mydl = os.listdir(path) results = [] @@ -384,26 +398,26 @@ class LockDir: # We're sweeping through, unlinking everyone's locks. os.unlink(filename) results.append("Unlinked: " + filename) - except SystemExit, e: + except SystemExit: raise - except Exception,e: + except Exception: pass try: os.unlink(x) results.append("Unlinked: " + x) os.unlink(mylockname) results.append("Unlinked: " + mylockname) - except SystemExit, e: + except SystemExit: raise - except Exception,e: + except Exception: pass else: try: os.unlink(mylockname) results.append("Unlinked: " + mylockname) - except SystemExit, e: + except SystemExit: raise - except Exception,e: + except Exception: pass return results @@ -415,15 +429,8 @@ if __name__ == "__main__": print i,time.time() time.sleep(1) print - def normpath(mypath): - newpath = os.path.normpath(mypath) - if len(newpath) > 1: - if newpath[1] == "/": - newpath = "/"+newpath.lstrip("/") - return newpath print "Lock 5 starting" - import time Lock1=LockDir("/tmp/lock_path") Lock1.write_lock() print "Lock1 write lock" |