summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl MacMillan <kmacmill@redhat.com>2007-12-12 10:36:46 -0500
committerKarl MacMillan <kmacmill@redhat.com>2007-12-12 10:36:46 -0500
commit7561d7c42d8d62d42cb6a50dac368c786cf75b38 (patch)
tree6d1eba33bb01ef35ba42d9a61d22bb50ffd0446b
parent380756ace9f1f6f4ce1e203d53f64ac503bb6652 (diff)
downloadfreeipa-7561d7c42d8d62d42cb6a50dac368c786cf75b38.tar.gz
freeipa-7561d7c42d8d62d42cb6a50dac368c786cf75b38.tar.xz
freeipa-7561d7c42d8d62d42cb6a50dac368c786cf75b38.zip
Remove radius from main install script and add
ipa-radius-install.
-rw-r--r--ipa-server/ipa-install/Makefile.am1
-rw-r--r--ipa-server/ipa-install/ipa-radius-install72
-rw-r--r--ipa-server/ipa-install/ipa-server-install5
-rw-r--r--ipa-server/ipaserver/radiusinstance.py2
4 files changed, 74 insertions, 6 deletions
diff --git a/ipa-server/ipa-install/Makefile.am b/ipa-server/ipa-install/Makefile.am
index 1b46d354b..b9ce69156 100644
--- a/ipa-server/ipa-install/Makefile.am
+++ b/ipa-server/ipa-install/Makefile.am
@@ -8,6 +8,7 @@ sbin_SCRIPTS = \
ipa-server-install \
ipa-replica-install \
ipa-replica-prepare \
+ ipa-radius-install \
$(NULL)
EXTRA_DIST = \
diff --git a/ipa-server/ipa-install/ipa-radius-install b/ipa-server/ipa-install/ipa-radius-install
new file mode 100644
index 000000000..84e10e426
--- /dev/null
+++ b/ipa-server/ipa-install/ipa-radius-install
@@ -0,0 +1,72 @@
+#! /usr/bin/python -E
+# Authors: Karl MacMillan <kmacmillan@mentalrootkit.com>
+#
+# Copyright (C) 2007 Red Hat
+# see file 'COPYING' for use and warranty information
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License as
+# published by the Free Software Foundation; version 2 only
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+import sys
+sys.path.append("/usr/share/ipa")
+
+import traceback, logging, krbV
+
+from ipaserver import radiusinstance, installutils
+
+from ipa import ipautil
+
+def get_host_name():
+ hostname = installutils.get_fqdn()
+ try:
+ installutils.verify_fqdn(hostname)
+ except RuntimeError, e:
+ logging.error(str(e))
+ sys.exit(1)
+
+ return hostname
+
+def get_realm_name():
+ c = krbV.default_context()
+ return c.default_realm
+
+def main():
+ if not ipautil.file_exists("/etc/ipa/ipa.conf"):
+ print "This system does not appear to have IPA configured."
+ print "Has ipa-server-install been run?"
+ yesno = raw_input("Continue with radius install [y/N]? ")
+ if yesno.lower() != "y":
+ sys.exit(1)
+
+ installutils.standard_logging_setup("iparadius-install.log", False)
+
+ host_name = get_host_name()
+
+ realm_name = get_realm_name()
+
+ # Create a radius instance
+ radius = radiusinstance.RadiusInstance()
+ # FIXME: ldap_server should be derived, not hardcoded to localhost, also should it be a URL?
+ radius.create_instance(realm_name, host_name, 'localhost')
+
+
+try:
+ main()
+except Exception, e:
+ message = "Unexpected error - see iparadius-install.log for details:\n %s" % str(e)
+ print message
+ message = str(e)
+ for str in traceback.format_tb(sys.exc_info()[2]):
+ message = message + "\n" + str
+ logging.debug(message)
diff --git a/ipa-server/ipa-install/ipa-server-install b/ipa-server/ipa-install/ipa-server-install
index 646512d51..05bece9e2 100644
--- a/ipa-server/ipa-install/ipa-server-install
+++ b/ipa-server/ipa-install/ipa-server-install
@@ -400,11 +400,6 @@ def main():
webgui = ipaserver.webguiinstance.WebGuiInstance()
webgui.create_instance()
- # Create a radius instance
- radius = ipaserver.radiusinstance.RadiusInstance()
- # FIXME: ldap_server should be derived, not hardcoded to localhost, also should it be a URL?
- radius.create_instance(realm_name, host_name, 'localhost')
-
bind.setup(host_name, ip_address, realm_name)
if options.setup_bind:
skipbind = False
diff --git a/ipa-server/ipaserver/radiusinstance.py b/ipa-server/ipaserver/radiusinstance.py
index 3b89018f0..4250b4bd1 100644
--- a/ipa-server/ipaserver/radiusinstance.py
+++ b/ipa-server/ipaserver/radiusinstance.py
@@ -125,7 +125,7 @@ class RadiusInstance(service.Service):
logging.error("could not create %s: %s", radius_util.RADIUSD_CONF_FILEPATH, e)
def __create_radius_keytab(self):
- self.step("creating a keytab for httpd")
+ self.step("creating a keytab for radiusd")
try:
if file_exists(radius_util.RADIUS_IPA_KEYTAB_FILEPATH):
os.remove(radius_util.RADIUS_IPA_KEYTAB_FILEPATH)