Don't assume cache_dir is set in conf during uninstall
[cascardo/ipsilon.git] / ipsilon / install / ipsilon-server-install
index 809d4c8..7837527 100755 (executable)
@@ -27,7 +27,7 @@ DATADIR = '/var/lib/ipsilon'
 HTTPDCONFD = '/etc/httpd/conf.d'
 BINDIR = '/usr/libexec'
 STATICDIR = '/usr/share/ipsilon'
-CACHEDIR = '/var/cache/httpd/ipsilon'
+CACHEDIR = '/var/cache/ipsilon'
 WSGI_SOCKET_PREFIX = None
 
 
@@ -97,6 +97,7 @@ def install(plugins, args):
                 'publicdatadir': args['public_data_dir'],
                 'wellknowndir': args['wellknown_dir'],
                 'sysuser': args['system_user'],
+                'cleanup_interval': args['cleanup_interval'],
                 'ipsilondir': BINDIR,
                 'staticdir': STATICDIR,
                 'cachedir': CACHEDIR,
@@ -242,6 +243,15 @@ def uninstall(plugins, args):
                               'ipsilon-%s.conf' % args['instance'])
     data_dir = os.path.join(DATADIR, args['instance'])
 
+    try:
+        tconf = ConfigParser.SafeConfigParser()
+        tconf.read(os.path.join(instance_conf, 'ipsilon.conf'))
+        cache_dir = tconf.get('global', 'cache_dir')
+    except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
+        cache_dir = None
+    else:
+        cache_dir = cache_dir.replace('"', '')
+
     if not os.path.exists(instance_conf):
         raise Exception('Could not find instance %s configuration'
                         % args['instance'])
@@ -294,6 +304,9 @@ def uninstall(plugins, args):
     shutil.rmtree(instance_conf)
     logger.info('Erasing instance data')
     shutil.rmtree(data_dir)
+    if cache_dir and os.path.exists(cache_dir):
+        for fn in os.listdir(cache_dir):
+            os.unlink(os.path.join(cache_dir, fn))
     logger.info('Uninstalled instance %s' % args['instance'])
 
 
@@ -369,7 +382,11 @@ def parse_args(plugins):
     parser.add_argument('--transaction-dburi',
                         help='Transaction database URI (override template)')
     parser.add_argument('--samlsessions-dburi',
-                        help='SAML 2 sessions database URI (override template)')
+                        help='SAML 2 sessions database URI (override ' +
+                             'template)')
+    parser.add_argument('--cleanup-interval', default=30,
+                        help='Interval between cleaning up stale database ' +
+                             'entries (in minutes, default: 30 minutes)')
 
     lms = []