{% set cached_server_dict = {} -%} {% set part_list = [] -%} {% set generic_instance_parameter_dict = {'cache_access': cache_access,} -%} [jinja2-template-base] recipe = slapos.recipe.template:jinja2 rendered = {{ apache_configuration_directory }}/${:filename} extra-context = context = key eggs_directory buildout:eggs-directory key develop_eggs_directory buildout:develop-eggs-directory ${:extra-context} {% for slave_instance in slave_instance_list -%} {% set slave_reference = slave_instance.get('slave_reference') -%} {% set slave_section_title = 'dynamic-template-slave-instance-%s' % slave_reference -%} {% set slave_parameter_dict = generic_instance_parameter_dict.copy() -%} {% do part_list.append(slave_section_title) -%} {% do slave_parameter_dict.__setitem__('access_log', '/'.join([apache_log_directory, '%s_access_log' % slave_reference])) -%} {% do slave_parameter_dict.__setitem__('error_log', '/'.join([apache_log_directory, '%s_error_log' % slave_reference])) -%} [{{ slave_section_title }}] < = jinja2-template-base template = {{ template_slave_configuration }} filename = {{ '%s.conf' % slave_reference }} extra-context = key apache_custom_https {{ 'slave-instance-%s-configuration:apache_custom_https' % slave_reference }} key apache_custom_http {{ 'slave-instance-%s-configuration:apache_custom_http' % slave_reference }} raw https_port {{ https_port }} raw http_port {{ http_port }} {{ '\n' }} # Set ssl certificates for each slave {% for cert_name in ('ssl_key', 'ssl_crt', 'ssl_ca_crt', 'ssl_csr')-%} {% if cert_name in slave_instance -%} {% set cert_title = '%s-%s' % (slave_reference, cert_name.replace('ssl_', '')) -%} {% set cert_file = '/'.join([custom_ssl_directory, cert_title.replace('-','.')]) -%} {% do part_list.append(cert_title) -%} {% do slave_parameter_dict.__setitem__(cert_name, cert_file) -%} [{{ cert_title }}] < = jinja2-template-base template = {{ empty_template }} rendered = {{ cert_file }} extra-context = key content {{ cert_title + '-config:value' }} [{{ cert_title + '-config' }}] value = {{ dumps(slave_instance.get(cert_name)) }} {% endif -%} {% endfor -%} # Set apache configuration for slave [{{ ('slave-instance-%s-configuration' % slave_reference) }}] {% set apache_custom_http = ((slave_instance.get('apache_custom_http', '')) % slave_parameter_dict) -%} {% set apache_custom_https = ((slave_instance.get('apache_custom_https', '')) % slave_parameter_dict) -%} apache_custom_http = {{ dumps(apache_custom_http) }} apache_custom_https = {{ dumps(apache_custom_https) }} {{ '\n' }} # The slave use cache {% if 'enable_cache' in slave_instance and 'url' in slave_instance and 'domain' in slave_instance -%} {% do cached_server_dict.__setitem__(slave_instance.get('domain'), slave_instance.get('url')) -%} {% endif -%} {% endfor -%} {% do part_list.append('cached-rewrite-rules') -%} [cached-rewrite-rules] < = jinja2-template-base template = {{ template_rewrite_cached }} rendered = {{ rewrite_cached_configuration }} extra-context = import json_module json key server_dict rewrite-rules:rules [rewrite-rules] rules = {{ dumps(cached_server_dict) }} [buildout] parts += {% for part in part_list -%} {{ ' %s' % part }} {% endfor -%} eggs-directory = {{ eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }} offline = true cache-access = {{ cache_access }}