From 725f3cefbaa1ae7f637862af4b7c40eb60264b17 Mon Sep 17 00:00:00 2001
From: Lukasz Nowak <luke@nexedi.com>
Date: Wed, 20 Jun 2018 10:39:33 +0200
Subject: [PATCH] caddy-frontend: Allow to override parameters

As there is some kind of "collision" with request, allow to override
parameters.

Treat `<key>` as default and overwrite it with `frontend-config-<num>-<key>`,
instead of having the global `<key>` always passed to slaves.

This allows to request the partition with:

  monitor-httpd-frontend=12345
  -frontend-config-1-monitor-httpd-frontend=9876
  -frontend-config-1-monitor-httpd-frontend=8765
---
 software/caddy-frontend/buildout.hash.cfg                | 2 +-
 software/caddy-frontend/instance-apache-replicate.cfg.in | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/software/caddy-frontend/buildout.hash.cfg b/software/caddy-frontend/buildout.hash.cfg
index 9c5d5f600..cefa2afaa 100644
--- a/software/caddy-frontend/buildout.hash.cfg
+++ b/software/caddy-frontend/buildout.hash.cfg
@@ -22,7 +22,7 @@ md5sum = 2db996d2c48c0fe03c05f051e7a914bc
 
 [template-apache-replicate]
 filename = instance-apache-replicate.cfg.in
-md5sum = a30d4bc21ae94d0eca42cea5032468a8
+md5sum = a757e014f362c3db3c2717cc5b4102ab
 
 [template-slave-list]
 filename = templates/apache-custom-slave-list.cfg.in
diff --git a/software/caddy-frontend/instance-apache-replicate.cfg.in b/software/caddy-frontend/instance-apache-replicate.cfg.in
index 688d1e1d2..e1945339a 100644
--- a/software/caddy-frontend/instance-apache-replicate.cfg.in
+++ b/software/caddy-frontend/instance-apache-replicate.cfg.in
@@ -100,8 +100,8 @@ name = {{ frontend_request.get('name') }}
 {%   if frontend_request.get('state') %}
 state = {{ frontend_request.get('state') }}
 {%   endif%}
-{%   set slave_configuration_dict = frontend_request.get('config') %}
-{%   do slave_configuration_dict.update(**slapparameter_dict) %}
+{%   set slave_configuration_dict = slapparameter_dict %}
+{%   do slave_configuration_dict.update(frontend_request.get('config')) %}
 {%   do slave_configuration_dict.__setitem__(slave_list_name, json_module.dumps(authorized_slave_list)) %}
 {%   do slave_configuration_dict.__setitem__("frontend-name", frontend_request.get('name')) %}
 config-_ = {{ json_module.dumps(slave_configuration_dict) }}
-- 
2.30.9