Changeset 1706:a0210843485e

Show
Ignore:
Timestamp:
07/22/08 14:36:47 (5 weeks ago)
Author:
klai@…
Branch:
default
Message:

Do not run commands blindly. The return code and stderr (stdout) may be very useful. (from rik)

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/Tycoon/Virtualization/XenResources.py

    r1705 r1706  
    3131    if log: 
    3232        INFO('doing ' + cmd) 
    33     os.system(cmd) 
    34      
     33    cmd_out = os.tmpfile() 
     34    cmd_err = os.tmpfile() 
     35    cmd_ret = os.system("exec 1>&%d 2>&%d; %s" % 
     36                        (cmd_out.fileno(), cmd_err.fileno(), cmd)) 
     37    cmd_out.seek(0) 
     38    cmd_err.seek(0) 
     39    if cmd_ret is not 0: 
     40        ERROR(("The command '%s' has finished with exit code %s.\n" +\ 
     41               "stdout: %s\nstderr: %s") % 
     42               (cmd, cmd_ret, cmd_out.read(), cmd_err.read())) 
     43    cmd_out.close() 
     44    cmd_err.close() 
     45    return cmd_ret 
     46 
    3547class XenCPU(CPU): 
    3648    """