def cache(app): # pragma: no cover """require an app to be put behind varnish """ require.deb.package('varnish') create_file_as_root('/etc/default/varnish', DEFAULT) create_file_as_root('/etc/varnish/main.vcl', MAIN_VCL) sites_vcl = '/etc/varnish/sites.vcl' site_config_dir = '/etc/varnish/sites' site_config = '/'.join(site_config_dir, '{app.name}.vcl'.format(app=app)) include = 'include "%s";' % site_config if exists(sites_vcl): append(sites_vcl, include, use_sudo=True) else: create_file_as_root(sites_vcl, include + '\n') require.files.directory(site_config_dir, use_sudo=True) create_file_as_root(site_config, SITE_VCL_TEMPLATE.format(app=app)) service.restart('varnish') template_vars = get_template_variables(App(app.name, 6081, domain=app.domain)) template_vars['SITE'] = True upload_template_as_root(app.nginx_site, 'nginx-app.conf', template_vars) service.reload('nginx')
def uncache(app): # pragma: no cover tv = get_template_variables(app) tv['auth'] = http_auth(app) create_file_as_root(app.nginx_site, SITE_TEMPLATE.format(**tv)) service.reload('nginx')