コード例 #1
0
ファイル: varnish.py プロジェクト: clld/clldfabric
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')
コード例 #2
0
ファイル: varnish.py プロジェクト: clld/clldfabric
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')