1 |
Use 'raise from' where sensible, but a lot of the CatalystErrors are |
2 |
just trading one CatalystError for another, so remove them. |
3 |
|
4 |
Signed-off-by: Matt Turner <mattst88@g.o> |
5 |
--- |
6 |
catalyst/base/stagebase.py | 110 +++++++++++------------------- |
7 |
catalyst/support.py | 4 +- |
8 |
catalyst/targets/livecd_stage2.py | 4 +- |
9 |
catalyst/targets/netboot.py | 33 +++------ |
10 |
catalyst/targets/snapshot.py | 2 +- |
11 |
5 files changed, 55 insertions(+), 98 deletions(-) |
12 |
|
13 |
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py |
14 |
index badcfefa..44e09d3e 100644 |
15 |
--- a/catalyst/base/stagebase.py |
16 |
+++ b/catalyst/base/stagebase.py |
17 |
@@ -906,7 +906,7 @@ class StageBase(TargetBase, ClearBase, GenBase): |
18 |
fstype=fstype, options=options) |
19 |
cxt.mount() |
20 |
except Exception as e: |
21 |
- raise CatalystError(f"Couldn't mount: {source}, {e}") |
22 |
+ raise CatalystError(f"Couldn't mount: {source}, {e}") from e |
23 |
|
24 |
def chroot_setup(self): |
25 |
self.makeconf = read_makeconf(normpath(self.settings["chroot_path"] + |
26 |
@@ -978,7 +978,7 @@ class StageBase(TargetBase, ClearBase, GenBase): |
27 |
except OSError as e: |
28 |
raise CatalystError('Could not write %s: %s' % ( |
29 |
normpath(self.settings["chroot_path"] + |
30 |
- self.settings["make_conf"]), e)) |
31 |
+ self.settings["make_conf"]), e)) from e |
32 |
self.resume.enable("chroot_setup") |
33 |
|
34 |
def write_make_conf(self, setup=True): |
35 |
@@ -1206,13 +1206,11 @@ class StageBase(TargetBase, ClearBase, GenBase): |
36 |
# operations, so we get easy glob handling. |
37 |
log.notice('%s: removing %s', self.settings["spec_prefix"], x) |
38 |
clear_path(self.settings["stage_path"] + x) |
39 |
- try: |
40 |
- if os.path.exists(self.settings["controller_file"]): |
41 |
- cmd([self.settings['controller_file'], 'clean'], |
42 |
- env=self.env) |
43 |
- self.resume.enable("remove") |
44 |
- except: |
45 |
- raise |
46 |
+ |
47 |
+ if os.path.exists(self.settings["controller_file"]): |
48 |
+ cmd([self.settings['controller_file'], 'clean'], |
49 |
+ env=self.env) |
50 |
+ self.resume.enable("remove") |
51 |
|
52 |
def preclean(self): |
53 |
if "autoresume" in self.settings["options"] \ |
54 |
@@ -1278,19 +1276,14 @@ class StageBase(TargetBase, ClearBase, GenBase): |
55 |
log.notice('Resume point detected, skipping run_local operation...') |
56 |
return |
57 |
|
58 |
- try: |
59 |
- if os.path.exists(self.settings["controller_file"]): |
60 |
- log.info('run_local() starting controller script...') |
61 |
- cmd([self.settings['controller_file'], 'run'], |
62 |
- env=self.env) |
63 |
- self.resume.enable("run_local") |
64 |
- else: |
65 |
- log.info('run_local() no controller_file found... %s', |
66 |
- self.settings['controller_file']) |
67 |
- |
68 |
- except CatalystError: |
69 |
- raise CatalystError("Stage build aborting due to error.", |
70 |
- print_traceback=False) |
71 |
+ if os.path.exists(self.settings["controller_file"]): |
72 |
+ log.info('run_local() starting controller script...') |
73 |
+ cmd([self.settings['controller_file'], 'run'], |
74 |
+ env=self.env) |
75 |
+ self.resume.enable("run_local") |
76 |
+ else: |
77 |
+ log.info('run_local() no controller_file found... %s', |
78 |
+ self.settings['controller_file']) |
79 |
|
80 |
def setup_environment(self): |
81 |
log.debug('setup_environment(); settings = %r', self.settings) |
82 |
@@ -1382,13 +1375,10 @@ class StageBase(TargetBase, ClearBase, GenBase): |
83 |
[self.settings[self.settings["spec_prefix"] + "/unmerge"]] |
84 |
|
85 |
# Before cleaning, unmerge stuff |
86 |
- try: |
87 |
- cmd([self.settings['controller_file'], 'unmerge'] + |
88 |
- self.settings[self.settings['spec_prefix'] + '/unmerge'], |
89 |
- env=self.env) |
90 |
- log.info('unmerge shell script') |
91 |
- except CatalystError: |
92 |
- raise |
93 |
+ cmd([self.settings['controller_file'], 'unmerge'] + |
94 |
+ self.settings[self.settings['spec_prefix'] + '/unmerge'], |
95 |
+ env=self.env) |
96 |
+ log.info('unmerge shell script') |
97 |
self.resume.enable("unmerge") |
98 |
|
99 |
def target_setup(self): |
100 |
@@ -1457,14 +1447,9 @@ class StageBase(TargetBase, ClearBase, GenBase): |
101 |
command.append(self.settings[target_pkgs]) |
102 |
else: |
103 |
command.extend(self.settings[target_pkgs]) |
104 |
- try: |
105 |
- cmd(command, env=self.env) |
106 |
- fileutils.touch(build_packages_resume) |
107 |
- self.resume.enable("build_packages") |
108 |
- except CatalystError: |
109 |
- raise CatalystError( |
110 |
- self.settings["spec_prefix"] + |
111 |
- "build aborting due to error.") |
112 |
+ cmd(command, env=self.env) |
113 |
+ fileutils.touch(build_packages_resume) |
114 |
+ self.resume.enable("build_packages") |
115 |
|
116 |
def build_kernel(self): |
117 |
'''Build all configured kernels''' |
118 |
@@ -1475,19 +1460,14 @@ class StageBase(TargetBase, ClearBase, GenBase): |
119 |
return |
120 |
|
121 |
if "boot/kernel" in self.settings: |
122 |
- try: |
123 |
- mynames = self.settings["boot/kernel"] |
124 |
- if isinstance(mynames, str): |
125 |
- mynames = [mynames] |
126 |
- # Execute the script that sets up the kernel build environment |
127 |
- cmd([self.settings['controller_file'], 'pre-kmerge'], env=self.env) |
128 |
- for kname in [sanitize_name(name) for name in mynames]: |
129 |
- self._build_kernel(kname=kname) |
130 |
- self.resume.enable("build_kernel") |
131 |
- except CatalystError: |
132 |
- raise CatalystError( |
133 |
- "build aborting due to kernel build error.", |
134 |
- print_traceback=True) |
135 |
+ mynames = self.settings["boot/kernel"] |
136 |
+ if isinstance(mynames, str): |
137 |
+ mynames = [mynames] |
138 |
+ # Execute the script that sets up the kernel build environment |
139 |
+ cmd([self.settings['controller_file'], 'pre-kmerge'], env=self.env) |
140 |
+ for kname in [sanitize_name(name) for name in mynames]: |
141 |
+ self._build_kernel(kname=kname) |
142 |
+ self.resume.enable("build_kernel") |
143 |
|
144 |
def _build_kernel(self, kname): |
145 |
"Build a single configured kernel by name" |
146 |
@@ -1531,12 +1511,8 @@ class StageBase(TargetBase, ClearBase, GenBase): |
147 |
raise CatalystError("Can't find kernel config: %s" % |
148 |
self.settings[key]) |
149 |
|
150 |
- try: |
151 |
- shutil.copy(self.settings[key], |
152 |
- self.settings['chroot_path'] + '/var/tmp/' + kname + '.config') |
153 |
- |
154 |
- except IOError: |
155 |
- raise |
156 |
+ shutil.copy(self.settings[key], |
157 |
+ self.settings['chroot_path'] + '/var/tmp/' + kname + '.config') |
158 |
|
159 |
def _copy_initramfs_overlay(self, kname): |
160 |
key = 'boot/kernel/' + kname + '/initramfs_overlay' |
161 |
@@ -1560,13 +1536,10 @@ class StageBase(TargetBase, ClearBase, GenBase): |
162 |
'Resume point detected, skipping bootloader operation...') |
163 |
return |
164 |
|
165 |
- try: |
166 |
- cmd([self.settings['controller_file'], 'bootloader', |
167 |
- self.settings['target_path'].rstrip('/')], |
168 |
- env=self.env) |
169 |
- self.resume.enable("bootloader") |
170 |
- except CatalystError: |
171 |
- raise CatalystError("Script aborting due to error.") |
172 |
+ cmd([self.settings['controller_file'], 'bootloader', |
173 |
+ self.settings['target_path'].rstrip('/')], |
174 |
+ env=self.env) |
175 |
+ self.resume.enable("bootloader") |
176 |
|
177 |
def livecd_update(self): |
178 |
if "autoresume" in self.settings["options"] \ |
179 |
@@ -1575,14 +1548,9 @@ class StageBase(TargetBase, ClearBase, GenBase): |
180 |
'Resume point detected, skipping build_packages operation...') |
181 |
return |
182 |
|
183 |
- try: |
184 |
- cmd([self.settings['controller_file'], 'livecd-update'], |
185 |
- env=self.env) |
186 |
- self.resume.enable("livecd_update") |
187 |
- |
188 |
- except CatalystError: |
189 |
- raise CatalystError( |
190 |
- "build aborting due to livecd_update error.") |
191 |
+ cmd([self.settings['controller_file'], 'livecd-update'], |
192 |
+ env=self.env) |
193 |
+ self.resume.enable("livecd_update") |
194 |
|
195 |
@staticmethod |
196 |
def _debug_pause_(): |
197 |
diff --git a/catalyst/support.py b/catalyst/support.py |
198 |
index fa652987..fc50fa34 100644 |
199 |
--- a/catalyst/support.py |
200 |
+++ b/catalyst/support.py |
201 |
@@ -140,9 +140,9 @@ def read_makeconf(mymakeconffile): |
202 |
if os.path.exists(mymakeconffile): |
203 |
try: |
204 |
return read_bash_dict(mymakeconffile, sourcing_command="source") |
205 |
- except Exception: |
206 |
+ except Exception as e: |
207 |
raise CatalystError("Could not parse make.conf file " + |
208 |
- mymakeconffile, print_traceback=True) |
209 |
+ mymakeconffile, print_traceback=True) from e |
210 |
else: |
211 |
makeconf = {} |
212 |
return makeconf |
213 |
diff --git a/catalyst/targets/livecd_stage2.py b/catalyst/targets/livecd_stage2.py |
214 |
index e90e9f53..ff4ea62a 100644 |
215 |
--- a/catalyst/targets/livecd_stage2.py |
216 |
+++ b/catalyst/targets/livecd_stage2.py |
217 |
@@ -79,11 +79,11 @@ class livecd_stage2(StageBase): |
218 |
"livecd/modblacklist"].split() |
219 |
for x in self.settings["livecd/modblacklist"]: |
220 |
myf.write("\nblacklist "+x) |
221 |
- except: |
222 |
+ except Exception as e: |
223 |
raise CatalystError("Couldn't open " + |
224 |
self.settings["chroot_path"] + |
225 |
"/etc/modprobe.d/blacklist.conf.", |
226 |
- print_traceback=True) |
227 |
+ print_traceback=True) from e |
228 |
|
229 |
def set_action_sequence(self): |
230 |
self.build_sequence.extend([ |
231 |
diff --git a/catalyst/targets/netboot.py b/catalyst/targets/netboot.py |
232 |
index a2a9fcb3..38d0cb45 100644 |
233 |
--- a/catalyst/targets/netboot.py |
234 |
+++ b/catalyst/targets/netboot.py |
235 |
@@ -30,17 +30,14 @@ class netboot(StageBase): |
236 |
]) |
237 |
|
238 |
def __init__(self, spec, addlargs): |
239 |
- try: |
240 |
- if "netboot/packages" in addlargs: |
241 |
- if isinstance(addlargs['netboot/packages'], str): |
242 |
- loopy = [addlargs["netboot/packages"]] |
243 |
- else: |
244 |
- loopy = addlargs["netboot/packages"] |
245 |
+ if "netboot/packages" in addlargs: |
246 |
+ if isinstance(addlargs['netboot/packages'], str): |
247 |
+ loopy = [addlargs["netboot/packages"]] |
248 |
+ else: |
249 |
+ loopy = addlargs["netboot/packages"] |
250 |
|
251 |
- for x in loopy: |
252 |
- self.valid_values |= {"netboot/packages/"+x+"/files"} |
253 |
- except: |
254 |
- raise CatalystError("configuration error in netboot/packages.") |
255 |
+ for x in loopy: |
256 |
+ self.valid_values |= {"netboot/packages/"+x+"/files"} |
257 |
|
258 |
StageBase.__init__(self, spec, addlargs) |
259 |
self.settings["merge_path"] = normpath("/tmp/image/") |
260 |
@@ -89,12 +86,8 @@ class netboot(StageBase): |
261 |
else: |
262 |
myfiles.append(self.settings["netboot/extra_files"]) |
263 |
|
264 |
- try: |
265 |
- cmd([self.settings['controller_file'], 'image'] + |
266 |
- myfiles, env=self.env) |
267 |
- except CatalystError: |
268 |
- raise CatalystError("Failed to copy files to image!", |
269 |
- print_traceback=True) |
270 |
+ cmd([self.settings['controller_file'], 'image'] + |
271 |
+ myfiles, env=self.env) |
272 |
|
273 |
self.resume.enable("copy_files_to_image") |
274 |
|
275 |
@@ -116,12 +109,8 @@ class netboot(StageBase): |
276 |
# we're done, move the kernels to builds/* |
277 |
# no auto resume here as we always want the |
278 |
# freshest images moved |
279 |
- try: |
280 |
- cmd([self.settings['controller_file'], 'final'], env=self.env) |
281 |
- log.notice('Netboot Build Finished!') |
282 |
- except CatalystError: |
283 |
- raise CatalystError("Failed to move kernel images!", |
284 |
- print_traceback=True) |
285 |
+ cmd([self.settings['controller_file'], 'final'], env=self.env) |
286 |
+ log.notice('Netboot Build Finished!') |
287 |
|
288 |
def remove(self): |
289 |
if "autoresume" in self.settings["options"] \ |
290 |
diff --git a/catalyst/targets/snapshot.py b/catalyst/targets/snapshot.py |
291 |
index 7732312c..6b727600 100644 |
292 |
--- a/catalyst/targets/snapshot.py |
293 |
+++ b/catalyst/targets/snapshot.py |
294 |
@@ -73,7 +73,7 @@ class snapshot(TargetBase): |
295 |
except subprocess.CalledProcessError as e: |
296 |
raise CatalystError(f'{e.cmd} failed with return code' |
297 |
f'{e.returncode}\n' |
298 |
- f'{e.output}\n') |
299 |
+ f'{e.output}\n') from e |
300 |
|
301 |
def run(self): |
302 |
if self.settings['snapshot_treeish'] == 'stable': |
303 |
-- |
304 |
2.26.2 |