From c20d4c71b87365b3b8d9c53418a79f992e68cd00 Mon Sep 17 00:00:00 2001 From: Martin Kosek Date: Wed, 11 Jul 2012 16:22:13 +0200 Subject: 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 --- freeipa.spec.in | 2 +- install/tools/ipa-ldap-updater | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/freeipa.spec.in b/freeipa.spec.in index deeb3341..71063109 100644 --- a/freeipa.spec.in +++ b/freeipa.spec.in @@ -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 diff --git a/install/tools/ipa-ldap-updater b/install/tools/ipa-ldap-updater index 197b840b..8f5c7664 100755 --- a/install/tools/ipa-ldap-updater +++ b/install/tools/ipa-ldap-updater @@ -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, -- cgit