diff options
author | Martin Basti <mbasti@redhat.com> | 2015-05-12 13:31:57 +0200 |
---|---|---|
committer | Jan Cholasta <jcholast@redhat.com> | 2015-05-19 12:43:04 +0000 |
commit | 78baeeb77c867d00c9c1ceb41c58512e487abb0c (patch) | |
tree | f3edc97760ecbfef5ba723b8ef3d4ec367d054ff /ipaserver/install/ipa_ldap_updater.py | |
parent | f6e3088b87cce1e0aefa9afbfeaf00eaea02dff2 (diff) | |
download | freeipa-78baeeb77c867d00c9c1ceb41c58512e487abb0c.tar.gz freeipa-78baeeb77c867d00c9c1ceb41c58512e487abb0c.tar.xz freeipa-78baeeb77c867d00c9c1ceb41c58512e487abb0c.zip |
Server Upgrade: handle errors better
* Prevent to continue with upgrade if a fatal error happened
* Use exceptions to handle failures
https://fedorahosted.org/freeipa/ticket/4904
Reviewed-By: David Kupka <dkupka@redhat.com>
Diffstat (limited to 'ipaserver/install/ipa_ldap_updater.py')
-rw-r--r-- | ipaserver/install/ipa_ldap_updater.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/ipaserver/install/ipa_ldap_updater.py b/ipaserver/install/ipa_ldap_updater.py index 5a0d61219..40e8e7f72 100644 --- a/ipaserver/install/ipa_ldap_updater.py +++ b/ipaserver/install/ipa_ldap_updater.py @@ -32,7 +32,7 @@ from ipalib import api from ipapython import ipautil, admintool from ipaplatform.paths import paths from ipaserver.install import installutils, dsinstance, schemaupdate -from ipaserver.install.ldapupdate import LDAPUpdate, UPDATES_DIR +from ipaserver.install.ldapupdate import LDAPUpdate, UPDATES_DIR, BadSyntax from ipaserver.install.upgradeinstance import IPAUpgrade @@ -108,17 +108,19 @@ class LDAPUpdater_Upgrade(LDAPUpdater): realm = krbV.default_context().default_realm upgrade = IPAUpgrade(realm, self.files, schema_files=options.schema_files) - upgrade.create_instance() - if upgrade.badsyntax: + try: + upgrade.create_instance() + except BadSyntax: raise admintool.ScriptError( 'Bad syntax detected in upgrade file(s).', 1) - elif upgrade.upgradefailed: + except RuntimeError: raise admintool.ScriptError('IPA upgrade failed.', 1) - elif upgrade.modified: - self.log.info('Update complete') else: - self.log.info('Update complete, no data were modified') + if upgrade.modified: + self.log.info('Update complete') + else: + self.log.info('Update complete, no data were modified') class LDAPUpdater_NonUpgrade(LDAPUpdater): |