summaryrefslogtreecommitdiffstats
path: root/install/tools/ipactl
diff options
context:
space:
mode:
authorPetr Viktorin <pviktori@redhat.com>2012-05-31 14:34:09 +0200
committerMartin Kosek <mkosek@redhat.com>2012-05-31 14:37:27 +0200
commit0ca29fac9af4cd437a8536f28ffd25923ec3f8cd (patch)
tree6804ca5316f511d83ee6898f19eea8b9ef9092ea /install/tools/ipactl
parent9e877585e213a9fccec8ff9b3dcb876b2ec65696 (diff)
downloadfreeipa-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-xinstall/tools/ipactl30
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')