From 28f3bbf67d88c5882af7052440f6c813900d8c26 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Thu, 20 Mar 2014 12:16:52 -0400 Subject: [PATCH] Install default configuration files Signed-off-by: Simo Sorce --- ipsilon/install/server.py | 28 ++++++++++++++++++++++++++++ setup.py | 3 ++- templates/install/idp.conf | 12 ++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 templates/install/idp.conf diff --git a/ipsilon/install/server.py b/ipsilon/install/server.py index 1acb8d7..d49c395 100755 --- a/ipsilon/install/server.py +++ b/ipsilon/install/server.py @@ -27,6 +27,11 @@ import sys import time +TEMPLATES = '/usr/share/ipsilon/templates/install' +CONFDIR = '/etc/ipsilon' +HTTPDCONFD = '/etc/httpd/conf.d' + + class ConfigurationError(Exception): def __init__(self, message): @@ -62,6 +67,29 @@ def openlogs(): def install(plugins, args): logger.info('Installation initiated') + now = time.strftime("%Y%m%d%H%M%S", time.gmtime()) + + logger.info('Installing default config files') + ipsilon_conf = os.path.join(CONFDIR, 'ipsilon.conf') + idp_conf = os.path.join(CONFDIR, 'idp.conf') + httpd_conf = os.path.join(HTTPDCONFD, 'idp.conf') + if os.path.exists(ipsilon_conf): + shutil.move(ipsilon_conf, '%s.bakcup.%s' % (ipsilon_conf, now)) + if os.path.exists(idp_conf): + shutil.move(idp_conf, '%s.backup.%s' % (idp_conf, now)) + shutil.copy(os.path.join(TEMPLATES, 'ipsilon.conf'), CONFDIR) + shutil.copy(os.path.join(TEMPLATES, 'idp.conf'), CONFDIR) + if not os.path.exists(httpd_conf): + os.symlink(idp_conf, httpd_conf) + # Load the cherrypy config from the newly installed file so + # that db paths and all is properly set before configuring + # components + cherrypy.config.update(ipsilon_conf) + + # Move pre-existing admin db away + admin_db = cherrypy.config['admin.config.db'] + if os.path.exists(admin_db): + shutil.move(admin_db, '%s.backup.%s' % (admin_db, now)) logger.info('Configuring login managers') for plugin_name in args['lm_order']: diff --git a/setup.py b/setup.py index 89181ae..ecda06a 100755 --- a/setup.py +++ b/setup.py @@ -39,7 +39,8 @@ setup( (DATA+'templates', glob('templates/*.html')), (DATA+'templates/admin', glob('templates/admin/*.html')), (DATA+'templates/login', glob('templates/login/*.html')), - (DATA+'templates/saml2', glob('templates/saml2/*.html')) + (DATA+'templates/saml2', glob('templates/saml2/*.html')), + (DATA+'templates/install', glob('templates/install/*.conf')), ] ) diff --git a/templates/install/idp.conf b/templates/install/idp.conf new file mode 100644 index 0000000..6d5c493 --- /dev/null +++ b/templates/install/idp.conf @@ -0,0 +1,12 @@ +Alias /idp/ui /usr/share/ipsilon/ui +WSGIScriptAlias /idp /usr/sbin/ipsilon +WSGIDaemonProcess idp user=ipsilon group=ipsilon +WSGIProcessGroup idp + + + Require all granted + + + + Require all granted + -- 2.20.1