pgreco / rpms / ipa

Forked from forks/areguera/rpms/ipa 4 years ago
Clone

Blame SOURCES/0031-ipa-commands-print-IPA-is-not-configured-when-ipa-is.patch

f65af0
From 040df002df8c58c84a94d2fb3dec717beb6e5f0a Mon Sep 17 00:00:00 2001
f65af0
From: Florence Blanc-Renaud <flo@redhat.com>
f65af0
Date: Wed, 22 Aug 2018 18:29:07 +0200
f65af0
Subject: [PATCH] ipa commands: print 'IPA is not configured' when ipa is not
f65af0
 setup
f65af0
f65af0
Some commands print tracebacks or unclear error message when
f65af0
they are called on a machine where ipa packages are installed but
f65af0
IPA is not configured.
f65af0
Consistently report 'IPA is not configured on this system' in this
f65af0
case.
f65af0
f65af0
Related to https://pagure.io/freeipa/issue/6261
f65af0
f65af0
Reviewed-By: Christian Heimes <cheimes@redhat.com>
f65af0
---
f65af0
 install/tools/ipa-compat-manage          | 2 ++
f65af0
 install/tools/ipa-csreplica-manage       | 4 +++-
f65af0
 ipaserver/advise/base.py                 | 2 ++
f65af0
 ipaserver/install/ipa_pkinit_manage.py   | 2 ++
f65af0
 ipaserver/install/ipa_server_upgrade.py  | 2 ++
f65af0
 ipaserver/install/ipa_winsync_migrate.py | 2 +-
f65af0
 6 files changed, 12 insertions(+), 2 deletions(-)
f65af0
f65af0
diff --git a/install/tools/ipa-compat-manage b/install/tools/ipa-compat-manage
f65af0
index 6dd259d2aad870e575093d6732157de743502ac2..ce61b702689448dcfbddbf0dad6c2adde861e6e9 100755
f65af0
--- a/install/tools/ipa-compat-manage
f65af0
+++ b/install/tools/ipa-compat-manage
f65af0
@@ -82,6 +82,8 @@ def main():
f65af0
     retval = 0
f65af0
     files = [paths.SCHEMA_COMPAT_ULDIF]
f65af0
 
f65af0
+    installutils.check_server_configuration()
f65af0
+
f65af0
     options, args = parse_options()
f65af0
 
f65af0
     if len(args) != 1:
f65af0
diff --git a/install/tools/ipa-csreplica-manage b/install/tools/ipa-csreplica-manage
f65af0
index 87f034d1205938c4551f939b0e8c0da292e90bc1..c7b62b293d68c95912ab641294180eeb74a98573 100755
f65af0
--- a/install/tools/ipa-csreplica-manage
f65af0
+++ b/install/tools/ipa-csreplica-manage
f65af0
@@ -32,6 +32,7 @@ from ipaserver.install import (replication, installutils, bindinstance,
f65af0
 from ipalib import api, errors
f65af0
 from ipalib.util import has_managed_topology
f65af0
 from ipapython import ipautil, ipaldap, version
f65af0
+from ipapython.admintool import ScriptError
f65af0
 from ipapython.dn import DN
f65af0
 
f65af0
 logger = logging.getLogger(os.path.basename(__file__))
f65af0
@@ -408,6 +409,7 @@ def exit_on_managed_topology(what, hint="topologysegment"):
f65af0
 
f65af0
 
f65af0
 def main():
f65af0
+    installutils.check_server_configuration()
f65af0
     options, args = parse_options()
f65af0
 
f65af0
     # Just initialize the environment. This is so the installer can have
f65af0
@@ -496,7 +498,7 @@ try:
f65af0
     main()
f65af0
 except KeyboardInterrupt:
f65af0
     sys.exit(1)
f65af0
-except SystemExit as e:
f65af0
+except (SystemExit, ScriptError) as e:
f65af0
     sys.exit(e)
f65af0
 except Exception as e:
f65af0
     sys.exit("unexpected error: %s" % e)
f65af0
diff --git a/ipaserver/advise/base.py b/ipaserver/advise/base.py
f65af0
index 40f2e65dc8f74a833ef6fe107eabf96ac6a3c12b..07b1431e84c31cb7ba2ecc58a9d152e596dd8b00 100644
f65af0
--- a/ipaserver/advise/base.py
f65af0
+++ b/ipaserver/advise/base.py
f65af0
@@ -30,6 +30,7 @@ from ipalib.errors import ValidationError
f65af0
 from ipaplatform.paths import paths
f65af0
 from ipapython import admintool
f65af0
 from ipapython.ipa_log_manager import Filter
f65af0
+from ipaserver.install import installutils
f65af0
 
f65af0
 
f65af0
 """
f65af0
@@ -418,6 +419,7 @@ class IpaAdvise(admintool.AdminTool):
f65af0
 
f65af0
     def validate_options(self):
f65af0
         super(IpaAdvise, self).validate_options(needs_root=False)
f65af0
+        installutils.check_server_configuration()
f65af0
 
f65af0
         if len(self.args) > 1:
f65af0
             raise self.option_parser.error("You can only provide one "
f65af0
diff --git a/ipaserver/install/ipa_pkinit_manage.py b/ipaserver/install/ipa_pkinit_manage.py
f65af0
index c54bb14f58b9bfd19ae860270a1c1955b4de1732..4a79bba5d1b636827a7a031965b49cf7b34c6330 100644
f65af0
--- a/ipaserver/install/ipa_pkinit_manage.py
f65af0
+++ b/ipaserver/install/ipa_pkinit_manage.py
f65af0
@@ -9,6 +9,7 @@ import logging
f65af0
 from ipalib import api
f65af0
 from ipaplatform.paths import paths
f65af0
 from ipapython.admintool import AdminTool
f65af0
+from ipaserver.install import installutils
f65af0
 from ipaserver.install.krbinstance import KrbInstance, is_pkinit_enabled
f65af0
 
f65af0
 logger = logging.getLogger(__name__)
f65af0
@@ -21,6 +22,7 @@ class PKINITManage(AdminTool):
f65af0
 
f65af0
     def validate_options(self):
f65af0
         super(PKINITManage, self).validate_options(needs_root=True)
f65af0
+        installutils.check_server_configuration()
f65af0
 
f65af0
         option_parser = self.option_parser
f65af0
 
f65af0
diff --git a/ipaserver/install/ipa_server_upgrade.py b/ipaserver/install/ipa_server_upgrade.py
f65af0
index 1e52bca9765671c0b63bf08b0ad47d40477037ee..7643b97f22fbf6c6861317a171c6e2da377365cd 100644
f65af0
--- a/ipaserver/install/ipa_server_upgrade.py
f65af0
+++ b/ipaserver/install/ipa_server_upgrade.py
f65af0
@@ -35,6 +35,8 @@ class ServerUpgrade(admintool.AdminTool):
f65af0
     def validate_options(self):
f65af0
         super(ServerUpgrade, self).validate_options(needs_root=True)
f65af0
 
f65af0
+        installutils.check_server_configuration()
f65af0
+
f65af0
         if self.options.force:
f65af0
             self.options.skip_version_check = True
f65af0
 
f65af0
diff --git a/ipaserver/install/ipa_winsync_migrate.py b/ipaserver/install/ipa_winsync_migrate.py
f65af0
index 0399b9b7b683cd92692094b53208dcc0f40fd392..43330ad502e736816a1af8e8c2a444e1eae05baa 100644
f65af0
--- a/ipaserver/install/ipa_winsync_migrate.py
f65af0
+++ b/ipaserver/install/ipa_winsync_migrate.py
f65af0
@@ -350,7 +350,7 @@ class WinsyncMigrate(admintool.AdminTool):
f65af0
         # Check if the IPA server is configured before attempting to migrate
f65af0
         try:
f65af0
             installutils.check_server_configuration()
f65af0
-        except RuntimeError as e:
f65af0
+        except admintool.ScriptError as e:
f65af0
             sys.exit(e)
f65af0
 
f65af0
         # Finalize API
f65af0
-- 
f65af0
2.17.1
f65af0