[Kimchi-devel] [PATCH] Add the command to run_command error and debug logging
Christy Perez
christy at linux.vnet.ibm.com
Wed Apr 2 15:04:19 UTC 2014
On Wed, 2014-04-02 at 16:42 +0800, Zhou Zheng Sheng wrote:
> on 2014/04/02 03:53, Aline Manera wrote:
> >
> > Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>
> >
> > On 04/01/2014 02:37 PM, Christy Perez wrote:
> >> I was debugging an issue and seeing rc's but not completely
> >> sure which command they were caused by. I think it's just nice
> >> to include what generated an rc, and also have all the output
> >> on the same line to remove any uncertainty.
> >>
> >> For example, instead of:
> >>
> >> rc: -15
> >> error:
> >>
> >> rc: -15
> >> error:
> >>
> >> You'll see:
> >> rc: -15 error: returned from cmd: /usr/bin/example-command-here
> >>
> >> Signed-off-by: Christy Perez <christy at linux.vnet.ibm.com>
> >> ---
> >> src/kimchi/utils.py | 6 ++++--
> >> 1 file changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/src/kimchi/utils.py b/src/kimchi/utils.py
> >> index 6c29e0e..11a36a4 100644
> >> --- a/src/kimchi/utils.py
> >> +++ b/src/kimchi/utils.py
> >> @@ -174,9 +174,11 @@ def run_command(cmd, timeout=None):
> >> kimchi_log.debug("out:\n%s", out)
> >>
> >> if proc.returncode != 0:
> >> - kimchi_log.error("rc: %s\nerror:\n%s", proc.returncode,
> >> error)
> >> + kimchi_log.error("rc: %s error: %s returned from
> >> cmd:".join(cmd),
> >> + proc.returncode, error)
> >> elif error:
> >> - kimchi_log.debug("error:\n%s", error)
> >> + kimchi_log.debug("error: %s returned from cmd: ".join(cmd),
> >> + error, cmd)
>
> Since the error output can be long and can contain '\n', I think the cmd
> should be in the front of the log message. For example,
>
> kimchi_log.error("cmd: %s\nrc: %s\nerror:\n%s",
> " ".join(cmd), proc.returncode, error)
I took out the newline characters since (like I said in the commit
message), I think that makes it a little unclear as to which rc goes
with what when they're sometimes printed a few at a time.
>
> Moreover,
> "error: %s returned from cmd: ".join(cmd)
> does not look correct. When we call "aStr.join(sequence)", aStr serves
> as a delimiter. For example,
>
Hm. So, that's not what happened in my testing before. It printed like I
thought it would. But I just did some more testing and it did split the
command and use the message as a delimiter!
> >>> "|||".join(['1', '2', '3'])
> '1|||2|||3'
>
> If we just want to paste cmd to the end of the message. We can just
> debug("error: %s returned from cmd: %s", error, ' '.joinc(cmd))
' '.join(cmd) is perfect. Thanks.
>
> >>
> >> if timeout_flag[0]:
> >> msg = ("subprocess is killed by signal.SIGKILL for "
> >
> > _______________________________________________
> > Kimchi-devel mailing list
> > Kimchi-devel at ovirt.org
> > http://lists.ovirt.org/mailman/listinfo/kimchi-devel
> >
>
>
More information about the Kimchi-devel
mailing list