From 9d768e8f7e24bb136925290cc5e2df28242e0be5 Mon Sep 17 00:00:00 2001
From: Julien Muchembled <jm@nexedi.com>
Date: Tue, 18 Nov 2014 17:52:40 +0100
Subject: [PATCH] request: drop redundant 'config' & 'sla' options

---
 setup.py                                      |  2 +-
 slapos/recipe/request.py                      | 29 +++++++--------
 software/ajaxplorer/instance-apachephp.cfg    |  4 ---
 software/ajaxplorer/software.cfg              |  2 +-
 software/apache-frontend/common.cfg           |  2 +-
 .../instance-apache-replicate.cfg.in          |  2 --
 software/davstorage/common.cfg                |  2 +-
 software/davstorage/instance-davstorage.cfg   |  2 --
 software/etherpad-lite/common.cfg             |  2 +-
 .../etherpad-lite/instance-etherpad-lite.cfg  |  1 -
 software/kvm/common.cfg                       |  4 +--
 .../instance-kvm-resilient-test.cfg.jinja2    |  5 +--
 software/kvm/instance-kvm.cfg.jinja2          |  2 --
 software/monitor/instance.cfg                 |  1 -
 software/monitor/software.cfg                 |  2 +-
 software/neoppod/cluster.cfg.in               | 13 ++-----
 software/neoppod/software.cfg                 |  2 +-
 .../instance-powerdns-replicate.cfg.jinja2    |  8 ++---
 software/powerdns/software.cfg                |  2 +-
 software/slaprunner/common.cfg                |  4 +--
 .../instance-resilient-test.cfg.jinja2        |  5 +--
 software/slaprunner/instance-runner.cfg       | 10 ++----
 .../instance-default.cfg                      |  1 -
 .../instance-watermarking.cfg.in              |  1 -
 .../lamp-generic/instance-apache-php.cfg.in   |  1 -
 .../lamp-generic/instance-edge.cfg.in         |  1 -
 software/unstable/lamp-generic/software.cfg   |  2 +-
 .../unstable/mioga/instance-apacheperl.cfg    |  2 --
 software/unstable/trac-svn/instance-trac.cfg  |  2 --
 software/unstable/trac-svn/software.cfg       |  2 +-
 .../unstable/zimbra-kvm/instance-kvm.cfg.in   |  4 ---
 stack/boinc/buildout.cfg                      |  2 +-
 stack/boinc/instance-boinc.cfg                |  1 -
 stack/erp5/buildout.cfg                       |  6 ++--
 stack/erp5/instance-erp5-cluster.cfg.in       | 12 -------
 stack/erp5/instance-erp5-single.cfg.in        |  2 --
 stack/erp5/instance-zope.cfg.in               |  2 --
 stack/lamp/apache/instance-apache-php.cfg.in  |  2 --
 stack/lamp/buildout.cfg                       |  4 +--
 stack/lamp/instance-resilient.cfg.jinja2      |  1 -
 stack/lapp/apache/instance-apache-php.cfg.in  |  2 --
 stack/lapp/buildout.cfg                       |  4 +--
 stack/lapp/instance-resilient.cfg.jinja2      |  1 -
 stack/resilient/buildout.cfg                  |  4 +--
 stack/resilient/template-replicated.cfg.in    | 36 ++++---------------
 45 files changed, 50 insertions(+), 151 deletions(-)

diff --git a/setup.py b/setup.py
index f90f1e440..b34e3c925 100755
--- a/setup.py
+++ b/setup.py
@@ -28,7 +28,7 @@ from setuptools import setup, find_packages
 import glob
 import os
 
-version = '0.90'
+version = '0.91'
 name = 'slapos.cookbook'
 long_description = open("README.txt").read() + "\n" + \
     open("CHANGES.txt").read() + "\n"
diff --git a/slapos/recipe/request.py b/slapos/recipe/request.py
index ae5976a6d..9b24b5361 100644
--- a/slapos/recipe/request.py
+++ b/slapos/recipe/request.py
@@ -25,6 +25,7 @@
 #
 ##############################################################################
 import logging
+from zc.buildout import UserError
 from slapos.recipe.librecipe import wrap, JSON_SERIALISED_MAGIC_KEY
 import json
 from slapos import slap as slapmodule
@@ -33,12 +34,6 @@ import traceback
 
 DEFAULT_SOFTWARE_TYPE = 'RootSoftwareInstance'
 
-def getListOption(option_dict, key, default=()):
-  result = option_dict.get(key, default)
-  if isinstance(result, basestring):
-    result = result.split()
-  return result
-
 class Recipe(object):
   """
   Request a partition to a slap master.
@@ -104,19 +99,20 @@ class Recipe(object):
     self.logger = logging.getLogger(name)
     software_url = options['software-url']
     name = options['name']
-    return_parameters = getListOption(options, 'return')
+    return_parameters = options.get('return', '').split()
     if not return_parameters:
       self.logger.debug("No parameter to return to main instance."
         "Be careful about that...")
     software_type = options.get('software-type', DEFAULT_SOFTWARE_TYPE)
-    filter_kw = dict(
-      (x, options['sla-' + x]) for x in getListOption(options, 'sla')
-      if options['sla-' + x]
-    )
-    partition_parameter_kw = self._filterForStorage(dict(
-      (x, options['config-' + x])
-      for x in getListOption(options, 'config')
-    ))
+    if 'config' in options or 'sla' in options:
+      raise UserError("'config' & 'sla' options are obsolete."
+                      " Clean up your software release.")
+    filter_kw = {k: v
+      for k, v in options.iteritems()
+      if k.startswith('sla-') and v}
+    partition_parameter_kw = self._filterForStorage({k: v
+      for k, v in options.iteritems()
+      if k.startswith('config-')})
     slave = options.get('slave', 'false').lower() in \
       librecipe.GenericBaseRecipe.TRUE_VALUES
 
@@ -267,9 +263,8 @@ class RequestEdge(Recipe):
       # Request will have its own copy of options dict
       local_options = original_options.copy()
       local_options['name'] = '%s-%s' % (country, name)
-      local_options['sla'] = "region"
       local_options['sla-region'] = country
-      
+
       self.request_dict[country] = Recipe(buildout, name, local_options)
       # "Bubble" all connection parameters
       for option, value in local_options.iteritems():
diff --git a/software/ajaxplorer/instance-apachephp.cfg b/software/ajaxplorer/instance-apachephp.cfg
index 71ca1fd74..ee7318aab 100644
--- a/software/ajaxplorer/instance-apachephp.cfg
+++ b/software/ajaxplorer/instance-apachephp.cfg
@@ -177,7 +177,6 @@ name = MariaDB
 software-url = $${slap-connection:software-release-url}
 software-type = mariadb
 return = url
-sla = computer_guid
 sla-computer_guid = $${slap-connection:computer-id}
 
 [mariadb-urlparse]
@@ -260,7 +259,6 @@ name = Frontend-Website
 # XXX We have hardcoded SR URL here.
 software-url = $${slap-parameter:frontend-software-url}
 slave = true
-config = url custom_domain
 config-url = http://[$${apache-php:ip}]:$${apache-php:port}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
@@ -272,7 +270,6 @@ name = Frontend-FileManager
 # XXX We have hardcoded SR URL here.
 software-url = $${slap-parameter:frontend-software-url}
 slave = true
-config = url custom_domain
 config-url = http://[$${httpd-conf:ip}]:$${httpd-conf:port2}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain2}
@@ -284,7 +281,6 @@ name = Frontend-Website2
 # XXX We have hardcoded SR URL here.
 software-url = $${slap-parameter:frontend-software-url}
 slave = true
-config = url custom_domain
 config-url = http://[$${httpd-conf:ip}]:$${httpd-conf:port3}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain3}
diff --git a/software/ajaxplorer/software.cfg b/software/ajaxplorer/software.cfg
index 8643575b0..c2a8ea4f6 100644
--- a/software/ajaxplorer/software.cfg
+++ b/software/ajaxplorer/software.cfg
@@ -35,7 +35,7 @@ md5sum = 4c7936accb3658871b635158198b7905
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-apachephp.cfg
 output = ${buildout:directory}/template-apachephp.cfg
-md5sum = ef5c61127a21c016014021477d1791e3
+md5sum = 8be713bd2656e184651c8ec10579d668
 mode = 0644
 
 [instance-mariadb]
diff --git a/software/apache-frontend/common.cfg b/software/apache-frontend/common.cfg
index 7a32b7c87..cb72041c4 100644
--- a/software/apache-frontend/common.cfg
+++ b/software/apache-frontend/common.cfg
@@ -74,7 +74,7 @@ mode = 0644
 [template-apache-replicate]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-apache-replicate.cfg.in
-md5sum = 140b3be4ce46aa18b33aea5d379d90e9
+md5sum = aafa98333cd51025938b33c2516f0b8d
 mode = 0644
 
 [template-slave-list]
diff --git a/software/apache-frontend/instance-apache-replicate.cfg.in b/software/apache-frontend/instance-apache-replicate.cfg.in
index a2d9c514b..ffe22dc57 100644
--- a/software/apache-frontend/instance-apache-replicate.cfg.in
+++ b/software/apache-frontend/instance-apache-replicate.cfg.in
@@ -86,7 +86,6 @@ software-url = ${slap-connection:software-release-url}
 {% endif %}
 software-type = {{frontend_type}}
 return = private-ipv4 public-ipv4 slave-instance-information-list monitor_url
-config = _
 connection-monitor_url =
 
 {% for section, frontend_request in request_dict.iteritems() %}
@@ -102,7 +101,6 @@ state = {{ frontend_request.get('state') }}
 {%   do slave_configuration_dict.__setitem__("frontend-name", frontend_request.get('name')) %}
 config-_ = {{ json_module.dumps(slave_configuration_dict) }}
 {%   if frontend_request.get('sla') %}
-sla = {{ ' '.join(frontend_request.get('sla').keys()) }}
 {%     for parameter, value in frontend_request.get('sla').iteritems() -%}
 sla-{{ parameter }} = {{ value }}
 {%     endfor -%}
diff --git a/software/davstorage/common.cfg b/software/davstorage/common.cfg
index 15e10a4bd..90763eb2a 100644
--- a/software/davstorage/common.cfg
+++ b/software/davstorage/common.cfg
@@ -44,6 +44,6 @@ mode = 0644
 [instance-davstorage]
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-davstorage.cfg
-md5sum = 699ecf4678386667f58a3391bab7af0f
+md5sum = b83b0351a0f46aac35d52e681270ff03
 output = ${buildout:directory}/template-davstorage.cfg
 mode = 0644
diff --git a/software/davstorage/instance-davstorage.cfg b/software/davstorage/instance-davstorage.cfg
index 23d562de7..f0f208b0f 100644
--- a/software/davstorage/instance-davstorage.cfg
+++ b/software/davstorage/instance-davstorage.cfg
@@ -166,7 +166,6 @@ name = Frontend Ajax
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url https-only
 config-https-only = true
 config-url = https://[$${davstorage:ip}]:$${davstorage:port_ajax}/
 return = domain
@@ -178,7 +177,6 @@ name = Frontend Webdav
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url https-only
 config-https-only = true
 config-url = https://$${davstorage:user}:$${davstorage:password}@[$${davstorage:ip}]:$${davstorage:port_webdav}/
 return = domain
diff --git a/software/etherpad-lite/common.cfg b/software/etherpad-lite/common.cfg
index bbca20299..c59bad0dd 100644
--- a/software/etherpad-lite/common.cfg
+++ b/software/etherpad-lite/common.cfg
@@ -58,7 +58,7 @@ mode = 0644
 [instance-etherpad-lite]
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-etherpad-lite.cfg
-md5sum = fd7249be8988155110234c7bb877abb9
+md5sum = 28710a9a23320dd472387d81a698d12d
 output = ${buildout:directory}/template-etherpad-lite.cfg
 mode = 0644
 
diff --git a/software/etherpad-lite/instance-etherpad-lite.cfg b/software/etherpad-lite/instance-etherpad-lite.cfg
index c7110be58..2f24e0dfb 100644
--- a/software/etherpad-lite/instance-etherpad-lite.cfg
+++ b/software/etherpad-lite/instance-etherpad-lite.cfg
@@ -67,7 +67,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url
 config-url = http://$${etherpad-conf-generation:ip}:$${etherpad-conf-generation:port}
 return = site_url
 
diff --git a/software/kvm/common.cfg b/software/kvm/common.cfg
index f228d3f76..aafc5a4ac 100644
--- a/software/kvm/common.cfg
+++ b/software/kvm/common.cfg
@@ -92,7 +92,7 @@ mode = 0644
 recipe = hexagonit.recipe.download
 url = ${:_profile_base_location_}/instance-kvm.cfg.jinja2
 mode = 644
-md5sum = e16c15f72fdeb92ce1854bc25daf5ad7
+md5sum = ac69266206830226185e576fb6e4935a
 download-only = true
 on-update = true
 
@@ -107,7 +107,7 @@ on-update = true
 [template-kvm-resilient-test]
 recipe = hexagonit.recipe.download
 url = ${:_profile_base_location_}/instance-kvm-resilient-test.cfg.jinja2
-md5sum = b4894680283d3912df4e9740f3e7848b
+md5sum = 080b5790b95a979e44c4a8e26dc02835
 mode = 0644
 download-only = true
 on-update = true
diff --git a/software/kvm/instance-kvm-resilient-test.cfg.jinja2 b/software/kvm/instance-kvm-resilient-test.cfg.jinja2
index b970c7d0d..6d7e05d61 100644
--- a/software/kvm/instance-kvm-resilient-test.cfg.jinja2
+++ b/software/kvm/instance-kvm-resilient-test.cfg.jinja2
@@ -42,16 +42,13 @@ recipe = slapos.cookbook:request
 software-url = ${slap-connection:software-release-url}
 software-type = kvm-resilient
 name = Resilient KVM (Root Instance)
-{% set cluster_parameter_dict = slapparameter_dict.get('cluster', {}) -%}
-config = virtual-hard-drive-url virtual-hard-drive-md5sum resiliency-backup-periodicity {{ cluster_parameter_dict.keys() | join(' ') }}
-{% for key, value in cluster_parameter_dict.items() -%}
+{% for key, value in slapparameter_dict.get('cluster', {}).iteritems() -%}
 config-{{ key }} = {{ dumps(value) }}
 {% endfor -%}
 config-virtual-hard-drive-url = ${slap-parameter:virtual-hard-drive-url}
 config-virtual-hard-drive-md5sum = ${slap-parameter:virtual-hard-drive-md5sum}
 config-resiliency-backup-periodicity = */5 * * * *
 # XXX What to do?
-sla = computer_guid
 sla-computer_guid = ${slap-connection:computer-id}
 
 [slap-parameter]
diff --git a/software/kvm/instance-kvm.cfg.jinja2 b/software/kvm/instance-kvm.cfg.jinja2
index db555542e..b0385db90 100644
--- a/software/kvm/instance-kvm.cfg.jinja2
+++ b/software/kvm/instance-kvm.cfg.jinja2
@@ -196,11 +196,9 @@ partition-id = ${slap-connection:partition-id}
 name = VNC Frontend
 software-type = ${slap-parameter:frontend-software-type}
 slave = true
-config = host port
 config-host = ${novnc-instance:ip}
 config-port = ${novnc-instance:port}
 return = url resource port domainname
-sla = instance_guid
 sla-instance_guid = ${slap-parameter:frontend-instance-guid}
 
 [frontend-promise]
diff --git a/software/monitor/instance.cfg b/software/monitor/instance.cfg
index 89b4645f6..4b871b53c 100644
--- a/software/monitor/instance.cfg
+++ b/software/monitor/instance.cfg
@@ -71,7 +71,6 @@ name = Monitor Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url domain
 config-url = $${monitor-parameters:url}
 config-domain = $${slap-parameter:frontend-domain}
 return = site_url domain
diff --git a/software/monitor/software.cfg b/software/monitor/software.cfg
index 35f8cd9d3..245549bb8 100644
--- a/software/monitor/software.cfg
+++ b/software/monitor/software.cfg
@@ -15,7 +15,7 @@ parts =
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance.cfg
 output = ${buildout:directory}/instance.cfg
-md5sum = 6ad84a0061df0c00a9f41d8b302adc45
+md5sum = b86685e4007296f4808c2f1f1b74a290
 mode = 0644
 
 # stupify index for now
diff --git a/software/neoppod/cluster.cfg.in b/software/neoppod/cluster.cfg.in
index 74bd0284f..1598d967e 100644
--- a/software/neoppod/cluster.cfg.in
+++ b/software/neoppod/cluster.cfg.in
@@ -9,7 +9,6 @@
 [request-common]
 recipe = slapos.cookbook:request
 software-url = ${slap-connection:software-release-url}
-sla = computer_guid
 sla-computer_guid = ${slap-connection:computer-id}
 server-url = ${slap-connection:server-url}
 key-file = ${slap-connection:key-file}
@@ -17,22 +16,15 @@ cert-file = ${slap-connection:cert-file}
 computer-id = ${slap-connection:computer-id}
 partition-id = ${slap-connection:partition-id}
 config-cluster = {{ slapparameter_dict['cluster'] }}
-config-partitions = {{ slapparameter_dict.get('partitions', 12) }}
-config-replicas = {{ slapparameter_dict.get('replicas', 0) }}
-
-[request-config]
-base = cluster
-master = partitions replicas
-node = masters
 
 [node-base]
 < = request-common
-config = ${request-config:base} ${request-config:node}
 config-masters = ${all-masters:addresses}
 
 [mysql-storage-base]
 < = request-common
-config = ${request-config:base} ${request-config:master}
+config-partitions = {{ slapparameter_dict.get('partitions', 12) }}
+config-replicas = {{ slapparameter_dict.get('replicas', 0) }}
 software-type = {{ mysql_storage_software_type }}
 
 [mysql-storage-request-base]
@@ -61,7 +53,6 @@ name = {{ section_id }}
 < = mysql-storage-base
 	node-base
 name = {{ section_id }}
-config = ${request-config:base} ${request-config:master} ${request-config:node}
 
 {% endfor -%}
 {% for node_number in range(slapparameter_dict.get('admin-count', 1)) -%}
diff --git a/software/neoppod/software.cfg b/software/neoppod/software.cfg
index 9c1c5f85b..b91c746e8 100644
--- a/software/neoppod/software.cfg
+++ b/software/neoppod/software.cfg
@@ -65,7 +65,7 @@ md5sum = 987f69333c563898cab21455509f8024
 [template-cluster]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/cluster.cfg.in
-md5sum = 7177d129e171b20044bf435ed549af43
+md5sum = edd46f8670421520ef20c786cd65d8c1
 
 [template-instance]
 < = base-template
diff --git a/software/powerdns/instance-powerdns-replicate.cfg.jinja2 b/software/powerdns/instance-powerdns-replicate.cfg.jinja2
index 7c751687d..c2c9e0dee 100644
--- a/software/powerdns/instance-powerdns-replicate.cfg.jinja2
+++ b/software/powerdns/instance-powerdns-replicate.cfg.jinja2
@@ -64,12 +64,9 @@ state = {{ slapparameter_dict.pop(state_key) }}
 {%   endif%}
 config-zone = {{ zone }}
 config-soa = {{ "%s,%s" % (dns_domain, server_admin) }}
-{%   if sla_parameters %}
-sla = {{ ' '.join(sla_parameters) }}
-{%     for parameter in sla_parameters -%}
+{%   for parameter in sla_parameters -%}
 sla-{{ parameter }} = {{ slapparameter_dict.pop( sla_key + parameter ) }}
-{%     endfor -%}
-{%   endif -%}
+{%   endfor -%}
 {% endfor -%}
 
 
@@ -86,7 +83,6 @@ software-url = ${slap-connection:software-release-url}
 {% endif %}
 software-type = {{dns_type}}
 return = private-ipv4 public-ipv4 slave-instance-information-list monitor_url
-config = {{ ' '.join(slapparameter_dict.keys()) + ' zone soa server-admin ns-record ' + slave_list_name }}
 config-server-admin = {{ server_admin }}
 config-ns-record = {{ ns_record }}
 {% for parameter, value in slapparameter_dict.iteritems() -%}
diff --git a/software/powerdns/software.cfg b/software/powerdns/software.cfg
index d33259972..f08e79d74 100644
--- a/software/powerdns/software.cfg
+++ b/software/powerdns/software.cfg
@@ -38,7 +38,7 @@ mode = 640
 [template-dns-replicate]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-powerdns-replicate.cfg.jinja2
-md5sum = 7cfc55bfb9821aad44272153f60450ef
+md5sum = 83cedc8fa923c59ca900b4600cc1c52f
 mode = 0644
 
 [iso-list]
diff --git a/software/slaprunner/common.cfg b/software/slaprunner/common.cfg
index d12e56f4b..af21be1a7 100644
--- a/software/slaprunner/common.cfg
+++ b/software/slaprunner/common.cfg
@@ -46,7 +46,7 @@ mode = 0644
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-runner.cfg
 output = ${buildout:directory}/template-runner.cfg.in
-md5sum = 8a6688ed89f49d32312f2145b7f7d15e
+md5sum = 8ebc0e59db33f0105968a813a3130236
 mode = 0644
 
 [template-runner-import-script]
@@ -90,7 +90,7 @@ mode = 0644
 recipe = hexagonit.recipe.download
 url = ${:_profile_base_location_}/instance-resilient-test.cfg.jinja2
 download-only = true
-md5sum = 01545742e97b4b95cd5e14d5d7cb1584
+md5sum = 105c7c427def7b2643b7480b2bada3a5
 filename = instance-resilient-test.cfg.jinja2
 mode = 0644
 
diff --git a/software/slaprunner/instance-resilient-test.cfg.jinja2 b/software/slaprunner/instance-resilient-test.cfg.jinja2
index 5cd1f3478..c2b0fc56b 100644
--- a/software/slaprunner/instance-resilient-test.cfg.jinja2
+++ b/software/slaprunner/instance-resilient-test.cfg.jinja2
@@ -41,9 +41,7 @@ recipe = slapos.cookbook:request
 software-url = ${slap-connection:software-release-url}
 software-type = resilient
 name = Resilient Instance (Root Instance)
-{% set cluster_parameter_dict = slapparameter_dict.get('cluster', {}) -%}
-config = resiliency-backup-periodicity resilient-clone-number {{ cluster_parameter_dict.keys() | join(' ') }}
-{% for key, value in cluster_parameter_dict.items() -%}
+{% for key, value in slapparameter_dict.get('cluster', {}).iteritems() -%}
 config-{{ key }} = {{ dumps(value) }}
 {% endfor -%}
 config-resiliency-backup-periodicity = */6 * * * *
@@ -51,7 +49,6 @@ config-resilient-clone-number = 2
 # XXX hardcoded
 #config-frontend-domain = google.com
 # XXX Hack to deploy Root Instance on the same computer as the type-test Instance
-sla = computer_guid
 sla-computer_guid = ${slap-connection:computer-id}
 return = backend_url
 
diff --git a/software/slaprunner/instance-runner.cfg b/software/slaprunner/instance-runner.cfg
index 8f91d8481..231253b8d 100644
--- a/software/slaprunner/instance-runner.cfg
+++ b/software/slaprunner/instance-runner.cfg
@@ -78,16 +78,12 @@ computer-id = $${slap-connection:computer-id}
 partition-id = $${slap-connection:partition-id}
 
 {%- if slapparameter_dict.get('custom-frontend-instance-guid') -%}
-sla = instance_guid
 sla-instance_guid = $${slap-parameter:frontend-instance-guid}
 {% endif -%}
 
-{% set custom_frontend_backend_type = slapparameter_dict.get('custom-frontend-backend-type')%}
-{% if custom_frontend_backend_type %}
-config = url type
+{% set custom_frontend_backend_type = slapparameter_dict.get('custom-frontend-backend-type') -%}
+{% if custom_frontend_backend_type -%}
 config-type = {{ custom_frontend_backend_type }}
-{% else %}
-config = url
 {% endif -%}
 config-url = {{ slapparameter_dict.get('custom-frontend-backend-url') }}
 return = site_url domain
@@ -422,7 +418,6 @@ name = SlapRunner Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url domain
 config-url = $${slaprunner:access-url}
 config-domain = $${slap-parameter:frontend-domain}
 return = site_url domain
@@ -434,7 +429,6 @@ name = Monitor Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url domain
 config-url = https://[$${monitor-httpd-configuration:listening-ip}]:$${monitor-parameters:port}
 config-domain = $${slap-parameter:frontend-domain}
 return = site_url domain
diff --git a/software/test-slave-instance-deployment/instance-default.cfg b/software/test-slave-instance-deployment/instance-default.cfg
index b39f9b1a6..797360b1a 100644
--- a/software/test-slave-instance-deployment/instance-default.cfg
+++ b/software/test-slave-instance-deployment/instance-default.cfg
@@ -40,7 +40,6 @@ name = Test Root Instance - Slave
 software-url = $${slap-connection:software-release-url}
 software-type = test
 slave = true
-sla = instance_guid
 sla-instance_guid = $${request-test-instance:instance-guid}
 return = foo
 
diff --git a/software/unstable/hexaglobe-watermarking/instance-watermarking.cfg.in b/software/unstable/hexaglobe-watermarking/instance-watermarking.cfg.in
index f5e418bdb..3385a8008 100644
--- a/software/unstable/hexaglobe-watermarking/instance-watermarking.cfg.in
+++ b/software/unstable/hexaglobe-watermarking/instance-watermarking.cfg.in
@@ -165,7 +165,6 @@ name = Frontend for $${slap-connection:computer-id} $${slap-connection:partition
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url
 config-url = http://[$${instance-parameter:ipv6-random}]:5000
 return = site_url
 
diff --git a/software/unstable/lamp-generic/instance-apache-php.cfg.in b/software/unstable/lamp-generic/instance-apache-php.cfg.in
index 07c52c4ec..ee2302fe0 100644
--- a/software/unstable/lamp-generic/instance-apache-php.cfg.in
+++ b/software/unstable/lamp-generic/instance-apache-php.cfg.in
@@ -151,7 +151,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url custom_domain
 config-url = http://[$${apache-php:ip}]:$${apache-php:port}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
diff --git a/software/unstable/lamp-generic/instance-edge.cfg.in b/software/unstable/lamp-generic/instance-edge.cfg.in
index 302cd5f6d..2f6cdb39d 100644
--- a/software/unstable/lamp-generic/instance-edge.cfg.in
+++ b/software/unstable/lamp-generic/instance-edge.cfg.in
@@ -20,7 +20,6 @@ return = url backend-url
 country-list = $${slap-parameter:country-list}
 software-url = $${slap-connection:software-release-url}
 software-type = default
-config = application-location
 config-application-location = $${slap-parameter:application-location}
 return = backend-url
 
diff --git a/software/unstable/lamp-generic/software.cfg b/software/unstable/lamp-generic/software.cfg
index b712f794b..909e2a06b 100644
--- a/software/unstable/lamp-generic/software.cfg
+++ b/software/unstable/lamp-generic/software.cfg
@@ -13,7 +13,7 @@ md5sum = 26ac6629a83869140189a85e581e822f
 
 [instance-apache-php]
 url = ${:_profile_base_location_}/instance-apache-php.cfg.in
-md5sum = fdc849c9f49b9d2fb043bf229d24076b
+md5sum = 062e77e6be6cda965cfdd0e6011df86e
 
 [instance-edge]
 recipe = slapos.recipe.template
diff --git a/software/unstable/mioga/instance-apacheperl.cfg b/software/unstable/mioga/instance-apacheperl.cfg
index 4660e2478..0ccb562f1 100644
--- a/software/unstable/mioga/instance-apacheperl.cfg
+++ b/software/unstable/mioga/instance-apacheperl.cfg
@@ -75,7 +75,6 @@ name = Postgres
 software-url = $${slap-connection:software-release-url}
 software-type = postgres
 return = url
-sla = computer_guid
 sla-computer_guid = $${slap-connection:computer-id}
 
 [postgres-urlparse]
@@ -139,7 +138,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url
 config-url = $${mioga-url:direct_url}
 return = site_url
 
diff --git a/software/unstable/trac-svn/instance-trac.cfg b/software/unstable/trac-svn/instance-trac.cfg
index c6117789f..a1c16fe38 100644
--- a/software/unstable/trac-svn/instance-trac.cfg
+++ b/software/unstable/trac-svn/instance-trac.cfg
@@ -181,7 +181,6 @@ name = MariaDB
 software-url = $${slap-connection:software-release-url}
 software-type = mariadb
 return = url
-sla = computer_guid
 sla-computer_guid = $${slap-connection:computer-id}
 
 [mariadb-urlparse]
@@ -437,7 +436,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url custom_domain
 config-url = http://[$${slap-network-information:global-ipv6}]:8080
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
diff --git a/software/unstable/trac-svn/software.cfg b/software/unstable/trac-svn/software.cfg
index f1a362bdd..3f21c4dcd 100644
--- a/software/unstable/trac-svn/software.cfg
+++ b/software/unstable/trac-svn/software.cfg
@@ -84,7 +84,7 @@ md5sum = bc6ed91a1862a10af661713aa0691848
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-trac.cfg
 output = ${buildout:directory}/template-trac.cfg
-md5sum = 1546a60e086b4d083d58ad4fca6dcca8
+md5sum = 2dc7ebfa9b7d5117274b74bafed4cfd4
 mode = 0644
 
 [instance-mariadb]
diff --git a/software/unstable/zimbra-kvm/instance-kvm.cfg.in b/software/unstable/zimbra-kvm/instance-kvm.cfg.in
index 29cd2804f..ba93f7940 100644
--- a/software/unstable/zimbra-kvm/instance-kvm.cfg.in
+++ b/software/unstable/zimbra-kvm/instance-kvm.cfg.in
@@ -196,11 +196,9 @@ partition-id = $${slap-connection:partition-id}
 name = VNC Frontend
 software-type = $${slap-parameter:frontend-software-type}
 slave = true
-config = host port
 config-host = $${novnc-instance:ip}
 config-port = $${novnc-instance:port}
 return = url resource port domainname
-sla = instance_guid
 sla-instance_guid = $${slap-parameter:frontend-instance-guid}
 
 [request-web-frontend]
@@ -210,7 +208,6 @@ name = Web Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url custom_domain
 config-url = https://[$${tunnel-ipv6-kvm-https:ipv6}]:$${tunnel-ipv6-kvm-https:ipv6-port}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
@@ -223,7 +220,6 @@ name = SMTP Frontend
 #software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/zimbra-kvm:/software/reverse-proxy-nginx/development.cfg
 software-url = /opt/slapdev/software/reverse-proxy-nginx/development.cfg
 slave = true
-config = smtp-upstream-host smtp-upstream-port
 config-smtp-upstream-host = $${tunnel-ipv6-kvm-smtp:ipv6}
 config-smtp-upstream-port = $${tunnel-ipv6-kvm-smtp:port}
 return = listening-ipv4
diff --git a/stack/boinc/buildout.cfg b/stack/boinc/buildout.cfg
index d1f2ebae4..24bfa8c1b 100644
--- a/stack/boinc/buildout.cfg
+++ b/stack/boinc/buildout.cfg
@@ -34,7 +34,7 @@ eggs =
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/instance-boinc.cfg
 output = ${buildout:directory}/template-boinc.cfg
-md5sum = 6642942dde15ab5195d8d8533690ef29
+md5sum = 5eb6057311fb1f73a54b72a40ead47c2
 mode = 0644
 
 #Template for deploying MySQL Database Server
diff --git a/stack/boinc/instance-boinc.cfg b/stack/boinc/instance-boinc.cfg
index 1aa36dd00..47a8b47e0 100644
--- a/stack/boinc/instance-boinc.cfg
+++ b/stack/boinc/instance-boinc.cfg
@@ -302,7 +302,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url custom_domain
 config-url = http://[$${apache-php:ip}]:$${apache-php:port}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
diff --git a/stack/erp5/buildout.cfg b/stack/erp5/buildout.cfg
index a28b08f22..8f5834cd5 100644
--- a/stack/erp5/buildout.cfg
+++ b/stack/erp5/buildout.cfg
@@ -165,7 +165,7 @@ extra-context =
 [template-zope]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-zope.cfg.in
-md5sum = 23baedc096a3ee046d2efe2195e19b96
+md5sum = ddf63b8dac634df63133c24f36df1050
 mode = 640
 
 [template-kumofs]
@@ -282,13 +282,13 @@ extra-context =
 [template-erp5-single]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-erp5-single.cfg.in
-md5sum = 34fa05c62c56a224d5114d2c0571f9ca
+md5sum = ee5ce422b52d1325f301a684ffc0eea3
 mode = 640
 
 [template-erp5-cluster]
 recipe = slapos.recipe.build:download
 url = ${:_profile_base_location_}/instance-erp5-cluster.cfg.in
-md5sum = fe6c0d579e68b974f7350e7627546c34
+md5sum = 1fafb23019043c069bf6e43d61010a54
 mode = 640
 
 [template-varnish]
diff --git a/stack/erp5/instance-erp5-cluster.cfg.in b/stack/erp5/instance-erp5-cluster.cfg.in
index 004564dcc..e783aecc8 100644
--- a/stack/erp5/instance-erp5-cluster.cfg.in
+++ b/stack/erp5/instance-erp5-cluster.cfg.in
@@ -18,7 +18,6 @@ versions = versions
 [request-common]
 recipe = slapos.cookbook:request
 software-url = ${slap-connection:software-release-url}
-sla = computer_guid
 return = url
 server-url = ${slap-connection:server-url}
 key-file = ${slap-connection:key-file}
@@ -35,7 +34,6 @@ sla-computer_guid = ${slap-parameter:mariadb-computer-guid}
 [request-cloudooo]
 <=request-common
 name = Cloudooo
-config = cloudooo-json
 config-cloudooo-json = ${slap-parameter:cloudooo-json}
 software-type = cloudooo
 sla-computer_guid = ${slap-parameter:cloudooo-computer-guid}
@@ -56,15 +54,6 @@ sla-computer_guid = ${slap-parameter:kumofs-computer-guid}
 <=request-common
 name = TidStorage
 return = url-login
-config =
-  json
-  mysql-url
-  memcached-url
-  cloudooo-url
-  kumofs-url
-  smtp-url
-  bt5
-  bt5-repository-url
 config-json = ${slap-parameter:json}
 config-mysql-url = ${request-mariadb:connection-url}
 config-memcached-url = ${request-memcached:connection-url}
@@ -79,7 +68,6 @@ sla-computer_guid = ${slap-parameter:tidstorage-computer-guid}
 [request-varnish]
 <=request-common
 name = Varnish
-config = tidstorage-url
 config-tidstorage-url = ${request-tidstorage:connection-url-login}
 config-web-checker-mail-address = ${slap-parameter:web-checker-mail-address}
 config-web-checker-smtp-host = ${slap-parameter:web-checker-smtp-host}
diff --git a/stack/erp5/instance-erp5-single.cfg.in b/stack/erp5/instance-erp5-single.cfg.in
index 52329f5cc..6394f36bf 100644
--- a/stack/erp5/instance-erp5-single.cfg.in
+++ b/stack/erp5/instance-erp5-single.cfg.in
@@ -91,7 +91,6 @@ bt5-repository-url = ${slap-parameter:bt5-repository-url}
 [request-common]
 recipe = slapos.cookbook:request
 software-url = ${slap-connection:software-release-url}
-sla = computer_guid
 sla-computer_guid = ${slap-connection:computer-id}
 return = url
 server-url = ${slap-connection:server-url}
@@ -108,7 +107,6 @@ software-type = mariadb
 [request-cloudooo]
 <=request-common
 name = Cloudooo
-config = cloudooo-json
 config-cloudooo-json = ${slap-parameter:cloudooo-json}
 software-type = cloudooo
 
diff --git a/stack/erp5/instance-zope.cfg.in b/stack/erp5/instance-zope.cfg.in
index f14e030e5..d31980c8d 100644
--- a/stack/erp5/instance-zope.cfg.in
+++ b/stack/erp5/instance-zope.cfg.in
@@ -25,7 +25,6 @@ versions = versions
 recipe = slapos.cookbook:request
 software-url = {{ slapparameter_dict['frontend-software-url'] }}
 software-type = {{ slapparameter_dict.get('frontend-software-type', 'RootSoftwareInstance') }}
-sla = instance_guid
 sla-instance_guid = {{ slapparameter_dict['frontend-instance-guid'] }}
 server-url = ${slap-connection:server-url}
 key-file = ${slap-connection:key-file}
@@ -41,7 +40,6 @@ slave = true
 {% if 'frontend-domain' in slapparameter_dict -%}
 {%   do config_dict.__setitem__('custom_domain', slapparameter_dict['frontend-domain']) -%}
 {% endif -%}
-config = {{ config_dict.keys() | join(' ') }}
 {% for name, value in config_dict.items() -%}
 config-{{ name }} = {{ value }}
 {% endfor -%}
diff --git a/stack/lamp/apache/instance-apache-php.cfg.in b/stack/lamp/apache/instance-apache-php.cfg.in
index d994aef8c..7b42f4c60 100644
--- a/stack/lamp/apache/instance-apache-php.cfg.in
+++ b/stack/lamp/apache/instance-apache-php.cfg.in
@@ -179,7 +179,6 @@ name = MariaDB
 software-url = $${slap-connection:software-release-url}
 software-type = mariadb
 return = url
-sla = computer_guid
 sla-computer_guid = $${slap-connection:computer-id}
 
 [mariadb-urlparse]
@@ -250,7 +249,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url custom_domain
 config-url = http://[$${apache-network-configuration:listening-ip}]:$${apache-network-configuration:listening-port}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
diff --git a/stack/lamp/buildout.cfg b/stack/lamp/buildout.cfg
index 0f79f82f5..b3e5dc4a7 100644
--- a/stack/lamp/buildout.cfg
+++ b/stack/lamp/buildout.cfg
@@ -74,7 +74,7 @@ mode = 0644
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/apache/instance-apache-php.cfg.in
 output = ${buildout:directory}/instance-apache-php.cfg
-md5sum = 3e2d71d3684aac3e52d2f55794df96bf
+md5sum = b2564a719fdde097f402ef80e0991903
 mode = 0644
 
 [instance-apache-import]
@@ -112,7 +112,7 @@ context = key buildout buildout:bin-directory
 import-list = file parts template-parts:destination
               file replicated template-replicated:destination
 
-md5sum = 1640ebe7f8ced607ce1ec93c4f6e5413
+md5sum = 5e2f917b032e43af6a736532966ae1f0
 mode = 0644
 
 [instance-mariadb]
diff --git a/stack/lamp/instance-resilient.cfg.jinja2 b/stack/lamp/instance-resilient.cfg.jinja2
index de7fa6093..ad7cc1919 100644
--- a/stack/lamp/instance-resilient.cfg.jinja2
+++ b/stack/lamp/instance-resilient.cfg.jinja2
@@ -19,7 +19,6 @@ parts +=
 [request-apache]
 return = url ssh-public-key ssh-url notification-id ip url backend_url
 # XXX: hardcoded values
-config = domain number authorized-key notify namebase mariadb1-computer-guid pbs-mariadb1-computer-guid mariadb2-computer-guid pbs-mariadb2-computer-guid mariadb3-computer-guid pbs-mariadb3-computer-guid
 config-mariadb1-computer-guid = ${slap-parameter:mariadb1-computer-guid}
 config-pbs-mariadb1-computer-guid = ${slap-parameter:pbs-mariadb1-computer-guid}
 config-mariadb2-computer-guid = ${slap-parameter:mariadb2-computer-guid}
diff --git a/stack/lapp/apache/instance-apache-php.cfg.in b/stack/lapp/apache/instance-apache-php.cfg.in
index cd425c711..01c300b92 100644
--- a/stack/lapp/apache/instance-apache-php.cfg.in
+++ b/stack/lapp/apache/instance-apache-php.cfg.in
@@ -179,7 +179,6 @@ name = Postgres
 software-url = $${slap-connection:software-release-url}
 software-type = postgres
 return = url
-sla = computer_guid
 sla-computer_guid = $${slap-connection:computer-id}
 
 [postgres-urlparse]
@@ -235,7 +234,6 @@ name = Frontend
 # XXX We have hardcoded SR URL here.
 software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
 slave = true
-config = url custom_domain
 config-url = http://[$${apache-php:ip}]:$${apache-php:port}/
 return = site_url
 config-custom_domain = $${slap-parameter:domain}
diff --git a/stack/lapp/buildout.cfg b/stack/lapp/buildout.cfg
index 4f0ea5ac8..d6f95e580 100644
--- a/stack/lapp/buildout.cfg
+++ b/stack/lapp/buildout.cfg
@@ -62,7 +62,7 @@ mode = 0644
 recipe = slapos.recipe.template
 url = ${:_profile_base_location_}/apache/instance-apache-php.cfg.in
 output = ${buildout:directory}/instance-apache-php.cfg
-md5sum = 823257dda6f3068a38c6b69c771cf307
+md5sum = 7a0670c747f2f21a79c240bfbfbf9f6e
 mode = 0644
 
 [instance-apache-import]
@@ -100,7 +100,7 @@ context = key buildout buildout:bin-directory
 import-list = file parts template-parts:destination
               file replicated template-replicated:destination
 
-md5sum = 26da0631906c2267b82703c4d4f4a911
+md5sum = 35bbf8cb40fe7185664641d82b406334
 mode = 0644
 
 [instance-postgres]
diff --git a/stack/lapp/instance-resilient.cfg.jinja2 b/stack/lapp/instance-resilient.cfg.jinja2
index d038376c9..ebc92df88 100644
--- a/stack/lapp/instance-resilient.cfg.jinja2
+++ b/stack/lapp/instance-resilient.cfg.jinja2
@@ -19,7 +19,6 @@ parts +=
 [request-apache]
 return = url ssh-public-key ssh-url notification-id ip url backend_url
 # XXX: hardcoded values
-config = domain number authorized-key notify namebase postgres1-computer-guid pbs-postgres1-computer-guid postgres2-computer-guid pbs-postgres2-computer-guid postgres3-computer-guid pbs-postgres3-computer-guid maarch-sql-data-file
 config-postgres1-computer-guid = ${slap-parameter:postgres1-computer-guid}
 config-pbs-postgres1-computer-guid = ${slap-parameter:pbs-postgres1-computer-guid}
 config-postgres2-computer-guid = ${slap-parameter:postgres2-computer-guid}
diff --git a/stack/resilient/buildout.cfg b/stack/resilient/buildout.cfg
index 0c6a253da..796c49916 100644
--- a/stack/resilient/buildout.cfg
+++ b/stack/resilient/buildout.cfg
@@ -69,7 +69,7 @@ mode = 0644
 [template-replicated]
 recipe = slapos.recipe.download
 url = ${:_profile_base_location_}/template-replicated.cfg.in
-md5sum = 649b4d898ecbcdca5135ad356788c7d3
+md5sum = a21d751078dbf1fc80ecb93a6f499287
 mode = 0644
 destination = ${buildout:directory}/template-replicated.cfg.in
 
@@ -126,6 +126,6 @@ Jinja2 = 2.6
 # ... And newer s.r.template requires Jinja2 >= 2.7
 slapos.recipe.template = 2.4.2
 rdiff-backup = 1.3.4nxd2
-slapos.cookbook = 0.90
+slapos.cookbook = 0.91
 
 
diff --git a/stack/resilient/template-replicated.cfg.in b/stack/resilient/template-replicated.cfg.in
index 09a0f0971..3611dfe85 100644
--- a/stack/resilient/template-replicated.cfg.in
+++ b/stack/resilient/template-replicated.cfg.in
@@ -31,13 +31,6 @@ software-url = ${slap-connection:software-release-url}
 software-type = {{typeexport}}
 name = {{namebase}}0
 return = ssh-public-key ssh-url notification-id ip
-config =
-# Resilient related parameters
-  number authorized-key notify namebase
-{% if slapparameter_dict is defined %}
-# Software Instance related parameters
-  {% for parameter_name in slapparameter_dict.keys() %}{{parameter_name}} {% endfor %}
-{% endif %}
 config-number = 0
 config-authorized-key = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}-{{id}}:connection-ssh-key}{% endfor %}
 config-notify = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}-{{id}}:connection-notification-url}{% endfor %}
@@ -47,7 +40,6 @@ config-notify = {% for id in range(1,nbbackup|int) %} ${request-pbs-{{namebase}}
 {% endfor %}
 {% endif %}
 {% if sla_parameter_dict == {} -%}
-sla = mode
 sla-mode = unique_by_network
 {% else %}
 {%   set sla_key_main = "-sla-%s%s-" % (namebase, 0) -%}
@@ -62,12 +54,9 @@ sla-mode = unique_by_network
 {%         do sla_dict.__setitem__(key[sla_key_secondary_length:], sla_parameter_dict.get(key)) -%}
 {%     endif -%}
 {%   endfor -%}
-{%   if sla_dict %}
-sla = {{ ' '.join(sla_dict.keys()) }}
-{%     for key, value in sla_dict.iteritems() -%}
+{%   for key, value in sla_dict.iteritems() -%}
 sla-{{ key }} = {{ value }}
-{%     endfor -%}
-{%   endif -%}
+{%   endfor -%}
 {% endif -%}
 
 {% for id in range(1,nbbackup|int) %}
@@ -85,12 +74,10 @@ return = ssh-public-key ssh-url notification-url ip
 
 pbs-notification-id = ${slap-connection:computer-id}-${slap-connection:partition-id}-{{namebase}}-{{id}}-push
 
-config = number authorized-key on-notification namebase
 config-number = {{id}}
 config-authorized-key = ${request-pbs-{{namebase}}-{{id}}:connection-ssh-key}
 config-on-notification = ${request-pbs-{{namebase}}-{{id}}:connection-feeds-url}${:pbs-notification-id}
 {% if sla_parameter_dict == {} -%}
-sla = mode
 sla-mode = unique_by_network
 {% else %}
 {%   set sla_key_main = "-sla-%s%s-" % (namebase, id) -%}
@@ -105,12 +92,9 @@ sla-mode = unique_by_network
 {%         do sla_dict.__setitem__(key[sla_key_secondary_length:], sla_parameter_dict.get(key)) -%}
 {%     endif -%}
 {%   endfor -%}
-{%   if sla_dict %}
-sla = {{ ' '.join(sla_dict.keys()) }}
-{%     for key, value in sla_dict.iteritems() -%}
+{%   for key, value in sla_dict.iteritems() -%}
 sla-{{ key }} = {{ value }}
-{%     endfor -%}
-{%   endif %}
+{%   endfor -%}
 {% endif %}
 
 [publish-connection-informations]
@@ -173,7 +157,6 @@ name = PBS ({{namebase}} / {{id}})
 return = ssh-key notification-url feeds-url
 slave = false
 {% if sla_parameter_dict == {} -%}
-sla = mode
 sla-mode = unique_by_network
 {% else %}
 {%   set sla_key_main = "-sla-%s%s-" % ("pbs", id) -%}
@@ -188,12 +171,9 @@ sla-mode = unique_by_network
 {%         do sla_dict.__setitem__(key[sla_key_secondary_length:], sla_parameter_dict.get(key)) -%}
 {%     endif -%}
 {%   endfor -%}
-{%   if sla_dict %}
-sla = {{ ' '.join(sla_dict.keys()) }}
-{%     for key, value in sla_dict.iteritems() -%}
+{%   for key, value in sla_dict.iteritems() -%}
 sla-{{ key }} = {{ value }}
-{%     endfor %}
-{%   endif %}
+{%   endfor %}
 {% endif %}
 
 [resilient-request-pbs-{{namebase}}-{{id}}-public-key-promise]
@@ -213,7 +193,6 @@ mode = 700
 [request-pull-backup-server-{{namebase}}-{{id}}]
 <= request-pbs-common
 name = PBS {{id}} pulling from ${request-{{namebase}}:name}
-config = url name type server-key on-notification notify notification-id title remove-backup-older-than
 config-url = ${request-{{namebase}}:connection-ssh-url}
 config-type = pull
 config-server-key = ${request-{{namebase}}:connection-ssh-public-key}
@@ -224,7 +203,6 @@ config-name = ${slap-connection:computer-id}-${slap-connection:partition-id}-{{n
 config-title = Pulling from {{namebase}}
 config-remove-backup-older-than = {{ slapparameter_dict.get('remove-backup-older-than', '2W') }}
 slave = true
-sla = instance_guid
 sla-instance_guid = ${request-pbs-{{namebase}}-{{id}}:instance_guid}
 
 [publish-connection-informations]
@@ -234,7 +212,6 @@ feed-url-{{namebase}}-{{id}}-pull = ${request-pbs-{{namebase}}-{{id}}:connection
 [request-pull-backup-server-{{namebase}}-backup-{{id}}]
 <= request-pbs-common
 name = PBS pushing on ${request-{{namebase}}-pseudo-replicating-{{id}}:name}
-config = url name type server-key on-notification notify notification-id title
 config-url = ${request-{{namebase}}-pseudo-replicating-{{id}}:connection-ssh-url}
 config-type = push
 config-server-key = ${request-{{namebase}}-pseudo-replicating-{{id}}:connection-ssh-public-key}
@@ -244,7 +221,6 @@ config-notification-id = ${request-{{namebase}}-pseudo-replicating-{{id}}:pbs-no
 config-name = ${slap-connection:computer-id}-${slap-connection:partition-id}-{{namebase}}-{{id}}
 config-title = Pushing to {{namebase}} backup {{id}}
 slave = true
-sla = instance_guid
 sla-instance_guid = ${request-pbs-{{namebase}}-{{id}}:instance_guid}
 {% endfor %}
 
-- 
2.30.9