Install default configuration files
authorSimo Sorce <simo@redhat.com>
Thu, 20 Mar 2014 16:16:52 +0000 (12:16 -0400)
committerSimo Sorce <simo@redhat.com>
Thu, 20 Mar 2014 20:54:59 +0000 (16:54 -0400)
Signed-off-by: Simo Sorce <simo@redhat.com>
ipsilon/install/server.py
setup.py
templates/install/idp.conf [new file with mode: 0644]

index 1acb8d7..d49c395 100755 (executable)
@@ -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']:
index 89181ae..ecda06a 100755 (executable)
--- 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 (file)
index 0000000..6d5c493
--- /dev/null
@@ -0,0 +1,12 @@
+Alias /idp/ui /usr/share/ipsilon/ui
+WSGIScriptAlias /idp /usr/sbin/ipsilon
+WSGIDaemonProcess idp user=ipsilon group=ipsilon
+WSGIProcessGroup idp
+
+<Directory /usr/sbin>
+    Require all granted
+</Directory>
+
+<Directory /usr/share/ipsilon>
+    Require all granted
+</Directory>