{% import 'parts' as parts -%} {% import 'replicated' as replicated with context -%} {% set clones_amount = slapparameter_dict.get('resilient-clone-number', 1)|int + 1 -%} [buildout] eggs-directory = {{ eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }} extends = {{ monitor_template }} parts += publish {#- Generate the parts to request the main theia, the clones and the PBS. #} {#- See ../../stack/resilient/template-parts.cfg.in #} {{ parts.replicate("theia", clones_amount) }} {#- Prepare monitoring information to transmit to and request from the main theia, the clones and the PBS #} {%- set monitor_cors_domains = slapparameter_dict.pop('monitor-cors-domains', 'monitor.app.officejs.com') %} {%- set monitor_username = slapparameter_dict.get('monitor-username', '${monitor-instance-parameter:username}') %} {%- set monitor_password = slapparameter_dict.get('monitor-password', '${monitor-htpasswd:passwd}') %} {%- set monitor_return = ['monitor-base-url'] %} {%- set monitor_parameter = {'monitor-cors-domains': monitor_cors_domains, 'monitor-username' : monitor_username, 'monitor-password': monitor_password} %} {%- set monitor_dict = {'parameter': monitor_parameter, 'return': monitor_return} %} {# Generate the sections to request the main theia, the clones and the PBS. #} {#- See ../../stack/resilient/template-replicated.cfg.in #} {{ replicated.replicate("theia", clones_amount, "export", "import", slapparameter_dict=slapparameter_dict, monitor_parameter_dict=monitor_dict) }} # Ask for the connection parameters of the main theia [request-theia] return += url username password backend-url # Publish connection parameters of the main theia and resiliency parameters [publish] recipe = slapos.cookbook:publish url = ${request-theia:connection-url} username = ${request-theia:connection-username} password = ${request-theia:connection-password} backend-url = ${request-theia:connection-backend-url} monitor-base-url = ${monitor-publish:monitor-base-url} monitor-setup-url = ${monitor-publish:monitor-setup-url} <= publish-connection-information