[libvirt] [libvirt-test-API][PATCH] Fix utils.exec_cmd output problem

Jincheng Miao jmiao at redhat.com
Wed Nov 27 06:11:29 UTC 2013


----- Original Message -----
> Why to append standard error to standard output. It is not right in
> semantics.

I think test-api should replace all commands modules with utils.exec_cmd.
For commands modules, it merged stderr with stdout:

def getstatusoutput(cmd):
    """Return (status, output) of executing cmd in a shell."""
    import os
    pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')

So for compatible, utils.exec_cmd should do the same thing.

> In order to get the standard error if executing command failed,  the
> following change is enough:
> 
>       if out == None:
>           # Prevent splitlines() from barfing later on
>           out = ""
> +    if p.returncode:
> +        out = err
>       return (p.returncode, out.splitlines())
> 
> 
> Guannan
> 




More information about the libvir-list mailing list