liblvm should not write 'Logical volume "foo" created' and other messages to stdout.
At the moment, the settings in lvm.conf are supposed to control this, and these can be overridden with lvm_config_override.
Well lvm.conf doesn't let you turn these off completely - something else to fix.
See also bug 851287 for some of the consequences. It must be possible to disable all direct use of stdin and stdout (and stderr?) by the library.
First step: a "silent" mode that suppresses non-essential tool output. https://lists.fedorahosted.org/pipermail/lvm2-commits/2012-August/000160.html The library calls from python will then be made always to run with this mode set (and shouldn't be using the display/reporting tools that still produce stdout anyway). When silent is set, yes_no_arg needs changing always to take the safe default instead of prompting. libdevmapper needs a similar review looking for anything written to stdout/read from stdin. Then when in silent mode, stdin/stdout will no longer be used and so the setvbuf calls can be skipped.
This bug appears to have been reported against 'rawhide' during the Fedora 19 development cycle. Changing version to '19'. (As we did not run this process for some time, it could affect also pre-Fedora 19 development cycle bugs. We are very sorry. It will help us with cleanup during Fedora 19 End Of Life. Thank you.) More information and reason for this action is here: https://fedoraproject.org/wiki/BugZappers/HouseKeeping/Fedora19