Print ipa-ldap-updater errors during RPM upgrade

ipa-ldap-updater does a lot of essential LDAP changes and if it
fails, user may be surprised after the upgrade why things does not
work.

Modify ipa-ldap-updater to print ERROR logging messages by default
and modify RPM upgrade scriptlet to show these errors to user. Console
error messages are now formated in a more user-friendly way.

Information message stating that IPA is not configured and i.e. there
is nothing to be updated is not printer to stderr so that it does
not pop up for every freeipa-server package update when IPA is not
configured.

https://fedorahosted.org/freeipa/ticket/2892
This commit is contained in:
Martin Kosek
2012-07-11 16:22:13 +02:00
parent 378238b14e
commit c20d4c71b8
2 changed files with 13 additions and 5 deletions

View File

@@ -465,7 +465,7 @@ fi
%posttrans server
# This must be run in posttrans so that updates from previous
# execution that may no longer be shipped are not applied.
/usr/sbin/ipa-ldap-updater --upgrade >/dev/null 2>&1 || :
/usr/sbin/ipa-ldap-updater --upgrade >/dev/null || :
%preun server
if [ $1 = 0 ]; then

View File

@@ -96,10 +96,15 @@ def main():
run_plugins = True
if os.getegid() == 0:
installutils.check_server_configuration()
try:
installutils.check_server_configuration()
except RuntimeError, e:
print unicode(e)
sys.exit(1)
else:
if not os.path.exists('/etc/ipa/default.conf'):
sys.exit("IPA is not configured on this system.")
print "IPA is not configured on this system."
sys.exit(1)
if options.upgrade:
sys.exit('Upgrade can only be done as root')
if run_plugins:
@@ -115,10 +120,13 @@ def main():
if dirman_password is None:
sys.exit("\nDirectory Manager password required")
console_format = '%(levelname)s: %(message)s'
if options.upgrade:
standard_logging_setup('/var/log/ipaupgrade.log', verbose=True, debug=options.debug, filemode='a')
standard_logging_setup('/var/log/ipaupgrade.log', debug=options.debug,
console_format=console_format, filemode='a')
else:
standard_logging_setup(None, verbose=True, debug=options.debug)
standard_logging_setup(None, console_format=console_format,
debug=options.debug)
cfg = dict (
in_server=True,