On 2013年11月26日 09:32, Jincheng Miao wrote:
ping gren
----- Original Message -----
> As described before, this patch should be :
>
> ---
> utils/utils.py | 5 ++---
> 1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/utils/utils.py b/utils/utils.py
> index 147c1ef..ec09c33 100644
> --- a/utils/utils.py
> +++ b/utils/utils.py
> @@ -409,9 +409,8 @@ def exec_cmd(command, sudo=False, cwd=None, infile=None,
> outfile=None, shell=Fal
> p = subprocess.Popen(command, shell=shell, close_fds=True, cwd=cwd,
> stdin=infile, stdout=outfile, stderr=subprocess.PIPE)
> (out, err) = p.communicate(data)
> - if out == None:
> - # Prevent splitlines() from barfing later on
> - out = ""
> + if out == "":
> + out = err
> return (p.returncode, out.splitlines())
>
> def remote_exec_pexpect(hostname, username, password, cmd):
> --
> 1.8.3.1
>
Sorry I missed your patch.
The p.returncode can indicate the result of executing command unless you
want the standard error.
The subprocess.PIPE can ensure the variable out is always string type,
but if the stdout is not the
subprocess.PIPE, the variable out possibly be the type of None.
so I think it is necessary to use the following code
if out == None:
out = ""
If you want to get standard error in the case of executing command
failure. we need to consider other
way.
Guannan