xen-unstable changeset 17959:6ae87b27cc contains a syntax error in vscsi_get_scsidevices: File "/local/scratch/xenrt/xenrtbuildH17919/build/dist/install/usr/lib/python/xen/util/vscsi_util.py", line 126, in vscsi_get_scsidevices UnboundLocalError: local variable ''sg'' referenced before assignment This is because the loop tries to add the device, including information about its sg, without first setting sg. I''ve grepped the code and setting sg to None seems the safest bet. Ian. Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com> _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Ian Jackson
2008-Oct-20 13:46 UTC
[Xen-devel] Re: [PATCH] pvscsi xend python syntax problem
Also, I''ve just noticed this: if re.match(''^scsi_generic'', f): os.chdir(os.path.join(paths, f)) sg = os.path.basename(os.getcwd()) which is really crazy! A utility function like this must not just use chdir! Is this really the best way of doing this ? In the meantime this might be a better patch. (NB: not tested.) Ian. diff -r 4129f0f2f2ba tools/python/xen/util/vscsi_util.py --- a/tools/python/xen/util/vscsi_util.py Fri Oct 17 14:15:37 2008 +0100 +++ b/tools/python/xen/util/vscsi_util.py Mon Oct 20 14:46:11 2008 +0100 @@ -114,7 +114,7 @@ def vscsi_get_scsidevices(): os.chdir(os.path.join(paths, f)) block = os.path.basename(os.getcwd()) - if re.match(''^scsi_generic'', f): + if false and re.match(''^scsi_generic'', f): os.chdir(os.path.join(paths, f)) sg = os.path.basename(os.getcwd()) lines = os.popen(''/sbin/scsi_id -gu -s /class/scsi_generic/'' + sg).read().split() @@ -122,6 +122,8 @@ def vscsi_get_scsidevices(): scsi_id = ''-'' else: scsi_id = lines[0] + else: + sg = None devices.append([hctl, block, sg, scsi_id]) _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Masaki Kanno
2008-Oct-20 23:58 UTC
Re: [Xen-devel] Re: [PATCH] pvscsi xend python syntax problem
Hi Ian, Thanks for your report. I will fix them. Best regards, Kan Mon, 20 Oct 2008 14:46:34 +0100, Ian Jackson wrote:>Also, I''ve just noticed this: > > if re.match(''^scsi_generic'', f): > os.chdir(os.path.join(paths, f)) > sg = os.path.basename(os.getcwd()) > >which is really crazy! A utility function like this must not just use >chdir! Is this really the best way of doing this ? > >In the meantime this might be a better patch. (NB: not tested.) > >Ian. > >diff -r 4129f0f2f2ba tools/python/xen/util/vscsi_util.py >--- a/tools/python/xen/util/vscsi_util.py Fri Oct 17 14:15:37 2008 +0100 >+++ b/tools/python/xen/util/vscsi_util.py Mon Oct 20 14:46:11 2008 +0100 >@@ -114,7 +114,7 @@ def vscsi_get_scsidevices(): > os.chdir(os.path.join(paths, f)) > block = os.path.basename(os.getcwd()) > >- if re.match(''^scsi_generic'', f): >+ if false and re.match(''^scsi_generic'', f): > os.chdir(os.path.join(paths, f)) > sg = os.path.basename(os.getcwd()) > lines = os.popen(''/sbin/scsi_id -gu -s /class/ >scsi_generic/'' + sg).read().split() >@@ -122,6 +122,8 @@ def vscsi_get_scsidevices(): > scsi_id = ''-'' > else: > scsi_id = lines[0] >+ else: >+ sg = None > > devices.append([hctl, block, sg, scsi_id]) > > >_______________________________________________ >Xen-devel mailing list >Xen-devel@lists.xensource.com >http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel