1 |
--- |
2 |
catalyst/lock.py | 55 ++++++++++++++++++++++++++++++----------------------- |
3 |
catalyst/main.py | 3 ++- |
4 |
catalyst/support.py | 11 ----------- |
5 |
3 files changed, 33 insertions(+), 36 deletions(-) |
6 |
|
7 |
diff --git a/catalyst/lock.py b/catalyst/lock.py |
8 |
index 2d10d2f..78968cb 100644 |
9 |
--- a/catalyst/lock.py |
10 |
+++ b/catalyst/lock.py |
11 |
@@ -3,14 +3,26 @@ import os |
12 |
import fcntl |
13 |
import errno |
14 |
import sys |
15 |
-import string |
16 |
import time |
17 |
-from catalyst.support import * |
18 |
+from catalyst.support import CatalystError, normpath |
19 |
|
20 |
def writemsg(mystr): |
21 |
sys.stderr.write(mystr) |
22 |
sys.stderr.flush() |
23 |
|
24 |
+ |
25 |
+class LockInUse(Exception): |
26 |
+ def __init__(self, message): |
27 |
+ if message: |
28 |
+ #(type,value)=sys.exc_info()[:2] |
29 |
+ #if value!=None: |
30 |
+ #print |
31 |
+ #kprint traceback.print_exc(file=sys.stdout) |
32 |
+ print |
33 |
+ print "!!! catalyst lock file in use: "+message |
34 |
+ print |
35 |
+ |
36 |
+ |
37 |
class LockDir: |
38 |
locking_method=fcntl.flock |
39 |
lock_dirs_in_use=[] |
40 |
@@ -109,7 +121,8 @@ class LockDir: |
41 |
def fcntl_lock(self,locktype): |
42 |
if self.myfd==None: |
43 |
if not os.path.exists(os.path.dirname(self.lockdir)): |
44 |
- raise DirectoryNotFound, os.path.dirname(self.lockdir) |
45 |
+ raise CatalystError("DirectoryNotFound: %s" |
46 |
+ % os.path.dirname(self.lockdir)) |
47 |
if not os.path.exists(self.lockfile): |
48 |
old_mask=os.umask(000) |
49 |
self.myfd = os.open(self.lockfile, os.O_CREAT|os.O_RDWR,0660) |
50 |
@@ -168,7 +181,7 @@ class LockDir: |
51 |
print "lockfile does not exist '%s'" % self.lockfile |
52 |
if (self.myfd != None): |
53 |
try: |
54 |
- os.close(myfd) |
55 |
+ os.close(self.myfd) |
56 |
self.myfd=None |
57 |
except: |
58 |
pass |
59 |
@@ -251,12 +264,13 @@ class LockDir: |
60 |
|
61 |
self.add_hardlock_file_to_cleanup() |
62 |
if not os.path.exists(self.myhardlock): |
63 |
- raise FileNotFound, "Created lockfile is missing: %(filename)s" % {"filename":self.myhardlock} |
64 |
+ raise CatalystError("FileNotFound: Created lockfile is missing: " |
65 |
+ "%(filename)s" % {"filename":self.myhardlock}) |
66 |
try: |
67 |
- res = os.link(self.myhardlock, self.lockfile) |
68 |
- except SystemExit, e: |
69 |
+ os.link(self.myhardlock, self.lockfile) |
70 |
+ except SystemExit: |
71 |
raise |
72 |
- except Exception, e: |
73 |
+ except Exception: |
74 |
# if "DEBUG" in self.settings: |
75 |
# print "lockfile(): Hardlink: Link failed." |
76 |
# print "Exception: ",e |
77 |
@@ -286,7 +300,7 @@ class LockDir: |
78 |
os.unlink(self.myhardlock) |
79 |
if os.path.exists(self.lockfile): |
80 |
os.unlink(self.lockfile) |
81 |
- except SystemExit, e: |
82 |
+ except SystemExit: |
83 |
raise |
84 |
except: |
85 |
writemsg("Something strange happened to our hardlink locks.\n") |
86 |
@@ -314,7 +328,7 @@ class LockDir: |
87 |
try: |
88 |
myhls = os.stat(link) |
89 |
mylfs = os.stat(lock) |
90 |
- except SystemExit, e: |
91 |
+ except SystemExit: |
92 |
raise |
93 |
except: |
94 |
myhls = None |
95 |
@@ -340,7 +354,7 @@ class LockDir: |
96 |
pass |
97 |
|
98 |
def hardlock_cleanup(self,path): |
99 |
- mypid = str(os.getpid()) |
100 |
+ #mypid = str(os.getpid()) |
101 |
myhost = os.uname()[1] |
102 |
mydl = os.listdir(path) |
103 |
results = [] |
104 |
@@ -384,26 +398,26 @@ class LockDir: |
105 |
# We're sweeping through, unlinking everyone's locks. |
106 |
os.unlink(filename) |
107 |
results.append("Unlinked: " + filename) |
108 |
- except SystemExit, e: |
109 |
+ except SystemExit: |
110 |
raise |
111 |
- except Exception,e: |
112 |
+ except Exception: |
113 |
pass |
114 |
try: |
115 |
os.unlink(x) |
116 |
results.append("Unlinked: " + x) |
117 |
os.unlink(mylockname) |
118 |
results.append("Unlinked: " + mylockname) |
119 |
- except SystemExit, e: |
120 |
+ except SystemExit: |
121 |
raise |
122 |
- except Exception,e: |
123 |
+ except Exception: |
124 |
pass |
125 |
else: |
126 |
try: |
127 |
os.unlink(mylockname) |
128 |
results.append("Unlinked: " + mylockname) |
129 |
- except SystemExit, e: |
130 |
+ except SystemExit: |
131 |
raise |
132 |
- except Exception,e: |
133 |
+ except Exception: |
134 |
pass |
135 |
return results |
136 |
|
137 |
@@ -415,15 +429,8 @@ if __name__ == "__main__": |
138 |
print i,time.time() |
139 |
time.sleep(1) |
140 |
print |
141 |
- def normpath(mypath): |
142 |
- newpath = os.path.normpath(mypath) |
143 |
- if len(newpath) > 1: |
144 |
- if newpath[1] == "/": |
145 |
- newpath = "/"+newpath.lstrip("/") |
146 |
- return newpath |
147 |
|
148 |
print "Lock 5 starting" |
149 |
- import time |
150 |
Lock1=LockDir("/tmp/lock_path") |
151 |
Lock1.write_lock() |
152 |
print "Lock1 write lock" |
153 |
diff --git a/catalyst/main.py b/catalyst/main.py |
154 |
index 81d48b5..15664de 100644 |
155 |
--- a/catalyst/main.py |
156 |
+++ b/catalyst/main.py |
157 |
@@ -21,7 +21,8 @@ sys.path.append(__selfpath__ + "/modules") |
158 |
from . import __version__ |
159 |
import catalyst.config |
160 |
import catalyst.util |
161 |
-from catalyst.support import CatalystError, find_binary, LockInUse |
162 |
+from catalyst.lock import LockInUse |
163 |
+from catalyst.support import CatalystError, find_binary |
164 |
from catalyst.defaults import (confdefaults, option_messages, |
165 |
required_build_targets, valid_build_targets) |
166 |
from hash_utils import HashMap, HASH_DEFINITIONS |
167 |
diff --git a/catalyst/support.py b/catalyst/support.py |
168 |
index d5dbfec..feaa645 100644 |
169 |
--- a/catalyst/support.py |
170 |
+++ b/catalyst/support.py |
171 |
@@ -115,17 +115,6 @@ class CatalystError(Exception): |
172 |
print "!!! catalyst: "+message |
173 |
print |
174 |
|
175 |
-class LockInUse(Exception): |
176 |
- def __init__(self, message): |
177 |
- if message: |
178 |
- #(type,value)=sys.exc_info()[:2] |
179 |
- #if value!=None: |
180 |
- #print |
181 |
- #kprint traceback.print_exc(file=sys.stdout) |
182 |
- print |
183 |
- print "!!! catalyst lock file in use: "+message |
184 |
- print |
185 |
- |
186 |
def die(msg=None): |
187 |
warn(msg) |
188 |
sys.exit(1) |
189 |
-- |
190 |
2.1.0 |