ceph: old daemons output to outs and outbuf, combine

When talking to old daemons, if a command succeeds, there may be
output on outs, outbuf, or both; combine them if there's no error,
and clear outs so it's not treated as stderr fodder.

Signed-off-by: Dan Mick <dan.mick@inktank.com>
Reviewed-by: Sage Weil <sage@inktank.com>
This commit is contained in:
Dan Mick 2013-06-07 16:39:34 -07:00
parent b3f38f3ed8
commit 359f456a70

View File

@ -1426,7 +1426,8 @@ def main():
# try old mon
ret, outbuf, outs = send_command(cmd=['status'])
# old mon returns status to outs...ick
outbuf = outs
if ret == 0:
outbuf += outs
if ret:
print >> sys.stderr, "status query failed: ", outs
return ret
@ -1487,6 +1488,11 @@ def main():
if verbose:
print '{0} to old {1}'.format(' '.join(childargs), target[0])
ret, outbuf, outs = send_command(target, childargs, inbuf)
# combine nonerror outbuf and outs; either may have cmd output
if ret == 0:
outbuf += outs
# clear outs so generic code below doesn't print it to stderr
outs = ''
elif ret:
if ret < 0:
ret = -ret