there are at least some syntax errors when trying to use the xen utils with python2.6. The attached patch changes these string exception into ValueError's. - tools/python/xen/util/bugtool.py (getBugTitle) - tools/python/xen/xend (class XendBase): not catched - tools/python/xen/xm/xenapi_create.py (sxp2xmlconvert_sxp_to_xml): the method already raises a ValueError for similiar condition. - tools/python/xen/xm/main.py (xm_network_attach): not catched. For all but maybe the first one, the replacement of the string exceptions into ValueError's seems to be safe. Matthias -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: tools-python2.6.diff URL: <http://lists.alioth.debian.org/pipermail/pkg-xen-devel/attachments/20100912/828004d0/attachment.txt>
On Sun, 2010-09-12 at 16:25 +0200, Matthias Klose wrote:> there are at least some syntax errors when trying to use the xen utils with > python2.6. The attached patch changes these string exception into ValueError's.Thanks Matthias.> - tools/python/xen/util/bugtool.py (getBugTitle) > - tools/python/xen/xend (class XendBase): not catched > - tools/python/xen/xm/xenapi_create.py (sxp2xmlconvert_sxp_to_xml): > the method already raises a ValueError for similiar condition. > - tools/python/xen/xm/main.py (xm_network_attach): not catched. > > For all but maybe the first one, the replacement of the string exceptions into > ValueError's seems to be safe.Why is the first one potentially unsafe? What do you mean by "not catched" here? Just that nothing catches the exception? Please could you provide a Signed-off-by line for upstream? Ian. Description: Replace python string exceptions with ValueError exceptions Author: Matthias Klose <doko at debian.org> Bug-Debian: http://bugs.debian.org/585372 --- xen-4.0.1.orig/tools/python/xen/util/bugtool.py +++ xen-4.0.1/tools/python/xen/util/bugtool.py @@ -139,7 +139,7 @@ def getBugTitle(bug): finally: f.close() - raise "Could not find title of bug %d!" % bug + raise ValueError("Could not find title of bug %d!" % bug) def send(bug, conn, fd, filename, username, password): --- xen-4.0.1.orig/tools/python/xen/xend/XendBase.py +++ xen-4.0.1/tools/python/xen/xend/XendBase.py @@ -114,7 +114,7 @@ class XendBase: # In OSS, ref == uuid return uuid else: - raise "Big Error.. TODO!" + raise ValueError("Big Error.. TODO!") def get_all_records(cls): return dict([(inst.get_uuid(), inst.get_record()) --- xen-4.0.1.orig/tools/python/xen/xm/xenapi_create.py +++ xen-4.0.1/tools/python/xen/xm/xenapi_create.py @@ -702,7 +702,7 @@ class sxp2xml: vm.attributes['security_label'] = \ security.set_security_label(sec_data[0][1][1],sec_data[0][2][1]) except Exception, e: - raise "Invalid security data format: %s" % str(sec_data) + raise ValueError("Invalid security data format: %s" % str(sec_data)) # Make the name tag --- xen-4.0.1.orig/tools/python/xen/xm/main.py +++ xen-4.0.1/tools/python/xen/xm/main.py @@ -2616,7 +2616,7 @@ def xm_network_attach(args): for ref, record in server.xenapi.network .get_all_records().items()]) if bridge not in networks.keys(): - raise "Unknown bridge name!" + raise ValueError("Unknown bridge name!") return networks[bridge] vif_conv = {
Ian Jackson
2010-Sep-14 16:46 UTC
[Pkg-xen-devel] [Xen-devel] Re: using xen tools with python2.6
Matthias Klose writes ("[Xen-devel] Re: [Pkg-xen-devel] using xen tools with python2.6"):> On 13.09.2010 10:38, Ian Campbell wrote: > > Why is the first one potentially unsafe? > > because I didn't check where it's used.I think, to be honest, that the exception and error handling in the Xen python code is bad enough already that this patch is very unlikely to make things worse. Particularly since you've diligently checked all the occurrences in xend and xm itself. So I have applied your patch. Thanks, Ian.
Maybe Matching Threads
- using xen tools with python2.6
- Fwd: Backport requests for 4.0
- debian/patches/* for xen-unstable 16319
- [PATCH] Replace pyxml/xmlproc-based XML validator with lxml based one.
- Bug#596316: xen: python2.5-dev used as build-dependency, not python-dev or python2.6-dev