diff options
author | Petr Viktorin <pviktori@redhat.com> | 2012-05-31 14:34:09 +0200 |
---|---|---|
committer | Martin Kosek <mkosek@redhat.com> | 2012-05-31 14:37:27 +0200 |
commit | 0ca29fac9af4cd437a8536f28ffd25923ec3f8cd (patch) | |
tree | 6804ca5316f511d83ee6898f19eea8b9ef9092ea /install/tools/ipactl | |
parent | 9e877585e213a9fccec8ff9b3dcb876b2ec65696 (diff) | |
download | freeipa-0ca29fac9af4cd437a8536f28ffd25923ec3f8cd.tar.gz freeipa-0ca29fac9af4cd437a8536f28ffd25923ec3f8cd.tar.xz freeipa-0ca29fac9af4cd437a8536f28ffd25923ec3f8cd.zip |
Move install script error handling to a common function
All of our install/admin scripts had a try/except block calling the
main function and handling common exceptions. These were copy-pasted
from each other and modified to various levels of sophistication.
This refactors them out of installers to a single function, which
includes a final pass/fail message for all of the scripts.
Non-install scripts that set up the same log handler levels for
stderr and log file are not changed, as it's not possible to log
to only the logfile without changing the logger configuration.
https://fedorahosted.org/freeipa/ticket/2071
Diffstat (limited to 'install/tools/ipactl')
-rwxr-xr-x | install/tools/ipactl | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/install/tools/ipactl b/install/tools/ipactl index 74ee38304..c4d26b8df 100755 --- a/install/tools/ipactl +++ b/install/tools/ipactl @@ -21,10 +21,10 @@ import sys try: import os - from ipaserver.install import service + from ipaserver.install import service, installutils from ipapython import services as ipaservices from ipaserver.install.dsinstance import config_dirname, realm_to_serverid - from ipaserver.install.installutils import is_ipa_configured, wait_for_open_ports, wait_for_open_socket + from ipaserver.install.installutils import is_ipa_configured, wait_for_open_ports, wait_for_open_socket, ScriptError from ipapython import sysrestore from ipapython import config from ipalib import api, errors @@ -44,13 +44,8 @@ error was: SASL_EXTERNAL = ldap.sasl.sasl({}, 'EXTERNAL') -class IpactlError(StandardError): - def __init__(self, msg = '', rval = 1): - self.msg = msg - self.rval = rval - - def __str__(self): - return self.msg +class IpactlError(ScriptError): + pass def check_IPA_configuration(): if not is_ipa_configured(): @@ -386,17 +381,6 @@ def main(): elif args[0].lower() == "status": ipa_status(options) -try: - if __name__ == "__main__": - sys.exit(main()) -except IpactlError, e: - if e.msg: - emit_err(e.msg) - sys.exit(e.rval) -except RuntimeError, e: - emit_err("%s" % e) - sys.exit(1) -except SystemExit, e: - sys.exit(e) -except KeyboardInterrupt, e: - sys.exit(1) + +if __name__ == '__main__': + installutils.run_script(main, operation_name='ipactl') |