[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] acm, xend: Follow linked files.
# HG changeset patch # User Keir Fraser <keir@xxxxxxxxxxxxx> # Date 1193909867 0 # Node ID ba1b6f9d33f58ab6064fe6a5d6eddf5ddfbed295 # Parent 76f30b65854fc69cab1f99182d7a4cf8eb20c9b8 acm, xend: Follow linked files. Signed-off-by: Stefan Berger <stefanb@xxxxxxxxxx> --- tools/python/xen/util/xsm/acm/acm.py | 31 +++++++++++-------------------- 1 files changed, 11 insertions(+), 20 deletions(-) diff -r 76f30b65854f -r ba1b6f9d33f5 tools/python/xen/util/xsm/acm/acm.py --- a/tools/python/xen/util/xsm/acm/acm.py Thu Nov 01 09:36:46 2007 +0000 +++ b/tools/python/xen/util/xsm/acm/acm.py Thu Nov 01 09:37:47 2007 +0000 @@ -711,33 +711,24 @@ def unify_resname(resource, mustexist=Tr except: err("Resource spec '%s' contains no tap subtype" % resource) - import os - if typ in ["phy", "tap"]: + if typ in ["phy"]: if not resfile.startswith("/"): resfile = "/dev/" + resfile if mustexist: - stats = os.lstat(resfile) - if stat.S_ISLNK(stats[stat.ST_MODE]): - resolved = os.readlink(resfile) - if resolved[0] != "/": - resfile = os.path.join(os.path.dirname(resfile), resolved) - resfile = os.path.abspath(resfile) - else: - resfile = resolved + resfile = os.path.realpath(resfile) + try: stats = os.lstat(resfile) - if not (stat.S_ISBLK(stats[stat.ST_MODE])): + if not (stat.S_ISBLK(stats[stat.ST_MODE])): + err("Invalid resource") + except: err("Invalid resource") if typ in [ "file", "tap" ]: - if mustexist: - stats = os.lstat(resfile) - if stat.S_ISLNK(stats[stat.ST_MODE]): - resfile = os.readlink(resfile) - stats = os.lstat(resfile) - if not stat.S_ISREG(stats[stat.ST_MODE]): - err("Invalid resource") - - #file: resources must specified with absolute path + resfile = os.path.realpath(resfile) + if mustexist and not os.path.isfile(resfile): + err("Invalid resource") + + #file: resources must be specified with absolute path #vlan resources don't start with '/' if typ != "vlan": if (not resfile.startswith("/")) or \ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |