Create cache directory for storing images for SP Portal
authorRob Crittenden <rcritten@redhat.com>
Wed, 2 Sep 2015 20:53:16 +0000 (16:53 -0400)
committerPatrick Uiterwijk <puiterwijk@redhat.com>
Fri, 4 Sep 2015 02:50:27 +0000 (04:50 +0200)
https://fedorahosted.org/ipsilon/ticket/148

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-by: Patrick Uiterwijk <puiterwijk@redhat.com>
22 files changed:
.gitignore
contrib/fedora/ipsilon.spec
ipsilon/install/ipsilon-server-install
ipsilon/ipsilon
quickrun.py
templates/install/idp.conf
templates/install/ipsilon.conf
tests/attrs.py
tests/dbupgrades.py
tests/fconf.py
tests/helpers/common.py
tests/ldap.py
tests/ldapdown.py
tests/openid.py
tests/pgdb.py
tests/test1.py
tests/testgssapi.py
tests/testlogout.py
tests/testmapping.py
tests/testnameid.py
tests/testrest.py
tests/trans.py

index a560b40..f9bf81c 100644 (file)
@@ -7,3 +7,4 @@ MANIFEST
 *.pyc
 *.pyo
 cscope.out
+ui/cache/
index 7da2ea0..6b6742c 100644 (file)
@@ -234,6 +234,7 @@ CFLAGS="%{optflags}" %{__python} setup.py build
 mkdir -p %{buildroot}%{_sbindir}
 mkdir -p %{buildroot}%{_libexecdir}
 mkdir -p %{buildroot}%{_defaultdocdir}
+mkdir -p %{buildroot}%{_localstatedir}/cache/ipsilon
 # These 0700 permissions are because ipsilon will store private keys here
 install -d -m 0700 %{buildroot}%{_sharedstatedir}/ipsilon
 install -d -m 0700 %{buildroot}%{_sysconfdir}/ipsilon
@@ -323,6 +324,7 @@ fi
 %{_libexecdir}/ipsilon
 %dir %attr(0751,root,root) %{_sharedstatedir}/ipsilon
 %dir %attr(0751,root,root) %{_sysconfdir}/ipsilon
+%dir %attr(0750,ipsilon,apache) %{_localstatedir}/cache/ipsilon
 
 %files client
 %{_bindir}/ipsilon-client-install
index 809d4c8..0625125 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
 
 
@@ -242,6 +242,10 @@ def uninstall(plugins, args):
                               'ipsilon-%s.conf' % args['instance'])
     data_dir = os.path.join(DATADIR, args['instance'])
 
+    tconf = ConfigParser.SafeConfigParser()
+    tconf.read(os.path.join(instance_conf, 'ipsilon.conf'))
+    cache_dir = tconf.get('global', 'cache_dir').replace('"', '')
+
     if not os.path.exists(instance_conf):
         raise Exception('Could not find instance %s configuration'
                         % args['instance'])
@@ -294,6 +298,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'])
 
 
index 8264bce..c62a9aa 100755 (executable)
@@ -60,7 +60,9 @@ template_env = Environment(loader=ChoiceLoader(template_loaders),
 if __name__ == "__main__":
     conf = {'/': {'tools.staticdir.root': os.getcwd()},
             '/ui': {'tools.staticdir.on': True,
-                    'tools.staticdir.dir': 'ui'}}
+                    'tools.staticdir.dir': 'ui'},
+            '/cache': {'tools.staticdir.on': True,
+                       'tools.staticdir.dir': 'cache'}}
     cherrypy.quickstart(Root('default', template_env),
                         cherrypy.config['base.mount'], conf)
 
index 73baae7..c3d7c73 100755 (executable)
@@ -51,6 +51,7 @@ def config(workdir):
     subprocess.call(['sqlite3', '-init', sql, users_db, '.quit'])
 
     trans_db = os.path.join(workdir, 'transactions.sqlite')
+    cachedir = os.path.join(workdir, 'cache')
 
     with open(CONF_TEMPLATE) as f:
         conf_template = f.read()
@@ -59,6 +60,7 @@ def config(workdir):
                          'instance': 'idp',
                          'staticdir': os.getcwd(),
                          'datadir': workdir,
+                         'cachedir': cachedir,
                          'admindb': admin_db,
                          'usersdb': users_db,
                          'transdb': trans_db,
@@ -95,6 +97,9 @@ if __name__ == '__main__':
         os.symlink(os.path.join(os.getcwd(), 'ui'),
                    os.path.join(args['workdir'], 'ui'))
 
+    if not os.path.exists(os.path.join(args['workdir'], 'cache')):
+        # This is only used in quickrun. Apache serves this directly
+        os.makedirs(os.path.join(args['workdir'], 'cache'))
 
     os.chdir(args['workdir'])
 
index dcc8592..ff69db6 100644 (file)
@@ -1,5 +1,6 @@
 Alias /${instance}/ui ${staticdir}/ui
 Alias /.well-known ${wellknowndir}
+Alias /${instance}/cache /var/cache/ipsilon
 WSGIScriptAlias /${instance} ${ipsilondir}/ipsilon
 WSGIDaemonProcess ${instance} user=${sysuser} group=${sysuser} home=${datadir} display-name=ipsilon-${instance}
 ${wsgi_socket}
@@ -23,3 +24,10 @@ ${sslrequiressl}
 <Location /.well-known/browserid>
     ForceType application/json
 </Location>
+
+<Directory "/var/cache/ipsilon">
+  SetHandler None
+  AllowOverride None
+  Satisfy Any
+  Allow from all
+</Directory>
index b57aa55..57ee2ea 100644 (file)
@@ -2,6 +2,7 @@
 debug = ${debugging}
 tools.log_request_response.on = False
 template_dir = "templates"
+cache_dir = "${cachedir}"
 db.conn.log = False
 
 log.screen = ${debugging}
index 956e7dd..2739751 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index 73d04fb..296ccbb 100755 (executable)
@@ -14,6 +14,7 @@ import ipsilon.util.data
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index b895a30..f6985a5 100755 (executable)
@@ -23,6 +23,7 @@ spport = '45081'
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index a7021e2..87cbd44 100755 (executable)
@@ -96,6 +96,7 @@ class IpsilonTestBase(object):
         os.mkdir(os.path.join(self.testdir, 'lib'))
         os.mkdir(os.path.join(self.testdir, 'lib', test.name))
         os.mkdir(os.path.join(self.testdir, 'log'))
+        os.mkdir(os.path.join(self.testdir, 'cache'))
 
     def generate_profile(self, global_opts, args_opts, name, addr, port,
                          nameid='unspecified'):
index 76797b8..e807b07 100755 (executable)
@@ -12,6 +12,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index 2c7138c..4294e7e 100755 (executable)
@@ -14,6 +14,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index 2e2e67b..949ba35 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index a8397b9..c29d883 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index 0a0abcf..69c5938 100755 (executable)
@@ -12,6 +12,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index a124c19..d73122c 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index efc4934..268a684 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index 64a31cd..6daa636 100755 (executable)
@@ -16,6 +16,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index ffbbeac..2d353ca 100755 (executable)
@@ -17,6 +17,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index dadaad2..b886727 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',
index 619945c..22e24de 100755 (executable)
@@ -13,6 +13,7 @@ from string import Template
 idp_g = {'TEMPLATES': '${TESTDIR}/templates/install',
          'CONFDIR': '${TESTDIR}/etc',
          'DATADIR': '${TESTDIR}/lib',
+         'CACHEDIR': '${TESTDIR}/cache',
          'HTTPDCONFD': '${TESTDIR}/${NAME}/conf.d',
          'STATICDIR': '${ROOTDIR}',
          'BINDIR': '${ROOTDIR}/ipsilon',