*.pyc
*.pyo
cscope.out
+ui/cache/
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
%{_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
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
'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'])
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'])
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)
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()
'instance': 'idp',
'staticdir': os.getcwd(),
'datadir': workdir,
+ 'cachedir': cachedir,
'admindb': admin_db,
'usersdb': users_db,
'transdb': trans_db,
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'])
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}
<Location /.well-known/browserid>
ForceType application/json
</Location>
+
+<Directory "/var/cache/ipsilon">
+ SetHandler None
+ AllowOverride None
+ Satisfy Any
+ Allow from all
+</Directory>
debug = ${debugging}
tools.log_request_response.on = False
template_dir = "templates"
+cache_dir = "${cachedir}"
db.conn.log = False
log.screen = ${debugging}
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',
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',
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',
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'):
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',
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',