On 04/17/2012 04:12 PM, John Dennis wrote:
There have been so many versions of the patch and various comments
attached to it I'm afraid I'm still trying to wrap my head around what
the actual problem is we're trying to solve, until I have that
understanding I can't evaluate the proposed solution.
Could you please state simply what the fundamental problem is the patch
is trying to correct for and how it accomplishes it?
The fundamental problem is in
https://fedorahosted.org/freeipa/ticket/2071: the install tools need to
put a final message in their logs, which states whether the command
succeeded or not, and if not, what the error was.
The patch needs to do this with minimal modifications to the scripts, so
that it doesn't break any functionality.
It accomplishes this by wrapping the scripts' top-level code in a
context manager. When the script is done, the context manager looks
whether an exception was raised and logs an appropriate message.
The current problem is that some tools configure logging to the console,
so this extra message ends up both in both the log file and on the console.
The tools themselves also write their errors to the console (via print,
SystemExit, or traceback), so the error appears twice.
Since I do not want to add an extra message to the console, but only
want it in a log file (if the tool uses one), I remove the console log
handler before logging the message.
When I tried to reach this understanding myself about the only thing I
figured out was that some of our command line utilities pass a string to
the exit() command whose output is out of band with respect to logging
resulting in a duplicate message (however before application of the
patch I don't see why logging would re-emit the message).
Yes, that's exactly right. The output to console was fine, it should
stay as it was before the patch.
Freeipa-devel mailing list