|
|
|
|
|
|
|
|
|
|
xen-devel
[Xen-devel] [PATCH] pygrub: do not overload RuntimeError for "no menu.ls
From: pbonzini@xxxxxxxxxx
# HG changeset patch
# User Paolo Bonzini <pbonzini@xxxxxxxxxx>
# Date 1319096986 -7200
# Node ID bd1f7361d3d7f4c767af21317fb4ec7ea1372f42
# Parent 1b110e895e285f43f14532e14c77597e54a0bcd2
pygrub will still try the next partition if run_grub exits with a
"real" error, thus hiding the root cause from the trace. Defining
a separate exception for "no bootloader config file found" avoids
this.
diff --git a/tools/pygrub/src/pygrub b/tools/pygrub/src/pygrub
--- a/tools/pygrub/src/pygrub
+++ b/tools/pygrub/src/pygrub
@@ -29,6 +29,9 @@ import grub.ExtLinuxConf
PYGRUB_VER = 0.6
+class NotFoundError(RuntimeError):
+ pass
+
def enable_cursor(ison):
if ison:
val = 2
@@ -412,7 +412,7 @@ class Grub:
self.cf.filename = f
break
if self.__dict__.get('cf', None) is None:
- raise RuntimeError, "couldn't find bootloader config file in the
image provided."
+ raise NotFoundError, "couldn't find bootloader config file in the
image provided."
f = fs.open_file(self.cf.filename)
buf = f.read()
del f
@@ -763,9 +766,9 @@ if __name__ == "__main__":
break
fs = None
- except:
+ except (IOError, NotFoundError):
# IOErrors raised by fsimage.open
- # RuntimeErrors raised by run_grub if no menu.lst present
+ # NotFoundError raised by run_grub if no menu.lst present
fs = None
continue
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
<Prev in Thread] |
Current Thread |
[Next in Thread>
|
- [Xen-devel] [PATCH] pygrub: do not overload RuntimeError for "no menu.lst found",
Paolo Bonzini <=
|
|
|
|
|