Commit b7707dbd authored by Lisa Casino's avatar Lisa Casino Committed by Xavier Thompson

software/html5as-base: add flexible replicate

parent cc6f1a4b
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
[template-cfg] [template-cfg]
filename = instance.cfg.in filename = instance.cfg.in
md5sum = 1d2d49bcd32002703b470a2af048fa6c md5sum = ef8a9814d930d61cefb8e0c6e3e1f306
[instance_html5as] [instance_html5as]
_update_hash_filename_ = instance_html5as.cfg.in _update_hash_filename_ = instance_html5as.cfg.in
...@@ -45,4 +45,4 @@ md5sum = 1c0ee16966e1fcdb3fd11c09f12ee2b2 ...@@ -45,4 +45,4 @@ md5sum = 1c0ee16966e1fcdb3fd11c09f12ee2b2
[template_instance_replicate] [template_instance_replicate]
_update_hash_filename_ = instance_replicate.cfg.in _update_hash_filename_ = instance_replicate.cfg.in
md5sum = 01fc8287b5429d21906a649d1163a51f md5sum = dd434383721ea765d6b3594f3910303d
...@@ -41,6 +41,7 @@ default-parameters = ...@@ -41,6 +41,7 @@ default-parameters =
[instance-replicate] [instance-replicate]
recipe = slapos.recipe.template:jinja2 recipe = slapos.recipe.template:jinja2
extensions = jinja2.ext.do
template = {{ template_instance_replicate }} template = {{ template_instance_replicate }}
rendered = ${buildout:directory}/${:filename} rendered = ${buildout:directory}/${:filename}
filename = instance-replicate-html5as.cfg filename = instance-replicate-html5as.cfg
...@@ -49,17 +50,10 @@ context = ...@@ -49,17 +50,10 @@ context =
section parameter_list profile-common section parameter_list profile-common
key slapparameter_dict slap-configuration:configuration key slapparameter_dict slap-configuration:configuration
jsonkey default_parameter_dict :default-parameters jsonkey default_parameter_dict :default-parameters
# User can specify parameter for any of the two instances
default-parameters = default-parameters =
{ {
"title": "",
"title1": "",
"title2": "",
"download_url": "", "download_url": "",
"port1": 8081, "replicate-quantity": 1
"port2": 8082,
"monitor-httpd-port1": 8197,
"monitor-httpd-port2": 8198
} }
[switch-softwaretype] [switch-softwaretype]
...@@ -73,3 +67,5 @@ recipe = slapos.cookbook:slapconfiguration ...@@ -73,3 +67,5 @@ recipe = slapos.cookbook:slapconfiguration
computer = ${slap-connection:computer-id} computer = ${slap-connection:computer-id}
partition = ${slap-connection:partition-id} partition = ${slap-connection:partition-id}
url = ${slap-connection:server-url} url = ${slap-connection:server-url}
key = ${slap-connection:key-file}
cert = ${slap-connection:cert-file}
{% set parameter_dict = dict(default_parameter_dict, **slapparameter_dict) %} {%- set parameter_dict = dict(default_parameter_dict, **slapparameter_dict) %}
{%- set replicate_quantity = int(parameter_dict['replicate-quantity']) %}
# Set default title and port for each replicate based on requested quantity
{%- for i in range(1, replicate_quantity + 1) %}
{%- do parameter_dict.setdefault("title-%d" % i, "") %}
{%- do parameter_dict.setdefault("port-%d" % i, 8081 + i) %}
{%- do parameter_dict.setdefault("monitor-httpd-port-%d" % i, 8197 + i) %}
{%- endfor %}
# Standard buildout section # Standard buildout section
[buildout] [buildout]
...@@ -24,34 +31,25 @@ software-type = default ...@@ -24,34 +31,25 @@ software-type = default
# What parameter are neede to be retrieved # What parameter are neede to be retrieved
return = server_url server-cdn-url monitor-setup-url return = server_url server-cdn-url monitor-setup-url
# Provided parameters # Provided parameters
config-title = {{ parameter_dict['title'] }}
config-download_url = {{ parameter_dict['download_url'] }} config-download_url = {{ parameter_dict['download_url'] }}
# Create request section in a loop.
{% for i in range(1, replicate_quantity + 1) %}
# Request a normal html5as instance # Request a normal html5as instance
[instance-1] [instance-{{ i }}]
<= instance-request-base <= instance-request-base
# Name of the instance # Name of the instance
name = instance-html5as-1 name = instance-html5as-{{ i }}
# Port and title can be configured by instance config-port = {{ parameter_dict["port-%s" % i] }}
config-port = {{ parameter_dict['port1'] }} config-title = {{ parameter_dict["title-%s" % i] }}
config-title = {{ parameter_dict['title1'] }} config-monitor-httpd-port = {{ parameter_dict["monitor-httpd-port-%s" % i] }}
config-monitor-httpd-port = {{ parameter_dict['monitor-httpd-port1'] }} {% endfor %}
# Request a second html5as instance
[instance-2]
<= instance-request-base
# Name of the instance
name = instance-html5as-2
config-port = {{ parameter_dict['port2'] }}
config-title = {{ parameter_dict['title2'] }}
config-monitor-httpd-port = {{ parameter_dict['monitor-httpd-port2'] }}
# Publish information to connect to the two instances # Publish information to connect to the two instances
[publish-connection-information] [publish-connection-information]
recipe = slapos.cookbook:publish recipe = slapos.cookbook:publish
instance-1-server_url = ${instance-1:connection-server_url} {% for i in range(1, replicate_quantity + 1) %}
instance-1-server-cdn-url = ${instance-1:connection-server-cdn-url} instance-{{ i }}-server_url = ${instance-{{ i }}:connection-server_url}
instance-1-server-monitor-setup-url = ${instance-1:connection-monitor-setup-url} instance-{{ i }}-server-cdn-url = ${instance-{{ i }}:connection-server-cdn-url}
instance-2-server_url = ${instance-2:connection-server_url} instance-{{ i }}-server-monitor-setup-url = ${instance-{{ i }}:connection-monitor-setup-url}
instance-2-server-cdn-url = ${instance-1:connection-server-cdn-url} {% endfor %}
instance-2-server-monitor-setup-url = ${instance-1:connection-monitor-setup-url}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment