From 038c1ea3443780ff9cce169b06a40184105b6d20 Mon Sep 17 00:00:00 2001
From: Gabriel Monnerat <gabriel@tiolive.com>
Date: Thu, 4 Aug 2011 23:22:11 -0300
Subject: [PATCH] refactor code to insert all entries in stunnel.conf

---
 slapos/recipe/apache/__init__.py | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/slapos/recipe/apache/__init__.py b/slapos/recipe/apache/__init__.py
index 73e417871..c5faafb98 100644
--- a/slapos/recipe/apache/__init__.py
+++ b/slapos/recipe/apache/__init__.py
@@ -67,7 +67,7 @@ class Recipe(BaseSlapRecipe):
     slave_instance_list = self.parameter_dict.get("slave_instance_list", [])
     rewrite_rule_list = []
     slave_dict = {}
-    stunnel_list = []
+    service_dict = {}
     base_url = "https://%s:%s/" % (frontend_domain_name, frontend_port_number)
     for slave_instance in slave_instance_list:
       url = slave_instance.get("url")
@@ -292,7 +292,8 @@ class Recipe(BaseSlapRecipe):
 
     return varnish_config
 
-  def installStunnel(self, service_dict, ca_certificate, key, ca_crl, ca_path):
+  def installStunnel(self, service_dict, certificate,
+      key, ca_crl, ca_path):
     """Installs stunnel
       service_dict = 
         { name: (public_ip, private_ip, public_port, private_port),}
@@ -305,16 +306,20 @@ class Recipe(BaseSlapRecipe):
     stunnel_conf = dict(
         pid_file=pid_file,
         log=log,
-        cert = ca_certificate,
+        cert = certificate,
         key = key,
         ca_crl = ca_crl,
         ca_path = ca_path,
-        entry_list=''
+        entry_str=''
     )
-    for service in service_dict:
-      # Get template_entry_filename and generate the entry_list
-      pass
-
+    entry_list = []
+    for name, parameter_dict in service_dict.iteritems():
+      parameter_dict["name"] = name
+      entry_str = self.substituteTemplate(template_entry_filename,
+          parameter_dict)
+      entry_list.append(entry_str)
+
+    stunnel_conf["entry_str"] = "\n".join(entry_list)
     stunnel_conf_path = self.createConfigurationFile("stunnel.conf",
         self.substituteTemplate(template_filename,
           stunnel_conf))
@@ -322,7 +327,7 @@ class Recipe(BaseSlapRecipe):
       'slapos.recipe.librecipe.execute', 'execute_wait')], self.ws,
       sys.executable, self.wrapper_directory, arguments=[
         [self.options['stunnel_binary'].strip(), stunnel_conf_path],
-        [ca_certificate, key]]
+        [certificate, key]]
       )[0]
     self.path_list.append(wrapper)
     return stunnel_conf
-- 
2.30.9