From 2361a56e3bc194b4d10cad81e5e2496c717177c3 Mon Sep 17 00:00:00 2001
From: Gabriel Monnerat <gabriel@tiolive.com>
Date: Thu, 14 Jul 2011 13:56:08 -0300
Subject: [PATCH] refactor __init__.py to be possible pass the domain of apache
 in parameter_dict and fix vhost profile

---
 slapos/recipe/apache/__init__.py              | 19 ++++++++++---------
 .../apache/template/apache.vhost.conf.in      |  2 +-
 2 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/slapos/recipe/apache/__init__.py b/slapos/recipe/apache/__init__.py
index 3bd6b9007..99b13783a 100644
--- a/slapos/recipe/apache/__init__.py
+++ b/slapos/recipe/apache/__init__.py
@@ -56,7 +56,7 @@ class Recipe(BaseSlapRecipe):
     key, certificate = self.requestCertificate('Apache Front end')
 
     # This should come from parameter.
-    frontend_domain_name = "host.vifib.net"
+    frontend_domain_name = self.parameter_dict.get("domain", "host.vifib.net")
 
     site_url = self.installFrontendApache(
           ip=self.getGlobalIPv6Address(),
@@ -209,19 +209,20 @@ class Recipe(BaseSlapRecipe):
 
   def installFrontendApache(self, ip, port, key, certificate,
                             name, access_control_string=None):
-
     rewrite_rule_include_path = self.createDataDirectory('apachevhost')
     slave_instance_list = self.parameter_dict.get("slave_instance_list", [])
+    clean_name = name.replace("http://", "").replace("https://", "")
+    print self.parameter_dict
     for slave_instance in slave_instance_list:
       id = self.generateNewId()
-      site_url = slave_instance.get("site_url", "")
+      protocol = name.split(":")[0]
+      url = slave_instance.get("url")
       rewrite_rule_content = self.substituteTemplate(
         self.getTemplateFilename('apache.vhost.conf.in'),
-        dict(id=id, ip=ip, port=port, site_url=site_url))
+        dict(id=id, ip=ip, port=port, domain=clean_name, url=url, protocol=protocol))
       self._writeFile(os.path.join(rewrite_rule_include_path, id),
         rewrite_rule_content)
-
-    apache_conf = self._getApacheConfigurationDict(name, ip, port)
+    apache_conf = self._getApacheConfigurationDict(clean_name, ip, port)
     apache_conf['ssl_snippet'] = self.substituteTemplate(
         self.getTemplateFilename('apache.ssl-snippet.conf.in'),
         dict(login_certificate=certificate, login_key=key))
@@ -238,16 +239,16 @@ class Recipe(BaseSlapRecipe):
     apache_conf_string = self.substituteTemplate(
           self.getTemplateFilename('apache.conf.in'), apache_conf)
 
-    apache_config_file = self.createConfigurationFile(name + '.conf',
+    apache_config_file = self.createConfigurationFile(clean_name + '.conf',
         apache_conf_string)
 
     self.path_list.append(apache_config_file)
     self.path_list.extend(zc.buildout.easy_install.scripts([(
-      name, 'slapos.recipe.erp5.apache', 'runApache')], self.ws,
+      clean_name, 'slapos.recipe.erp5.apache', 'runApache')], self.ws,
           sys.executable, self.wrapper_directory, arguments=[
             dict(
               required_path_list=[key, certificate],
               binary=self.options['httpd_binary'],
               config=apache_config_file)
           ]))
-    return "https://[%s]:%s/" % (ip, port)
+    return "%s:%s/" % (name, port)
diff --git a/slapos/recipe/apache/template/apache.vhost.conf.in b/slapos/recipe/apache/template/apache.vhost.conf.in
index 017f2fa1d..421cc3810 100644
--- a/slapos/recipe/apache/template/apache.vhost.conf.in
+++ b/slapos/recipe/apache/template/apache.vhost.conf.in
@@ -1 +1 @@
-RewriteRule ^/%(id)s($|/.*) %(site_url)s/VirtualHostBase/http/%(ip)s:%(port)s/VirtualHostRoot/_vh_%(id)s$1 [L,P]
+RewriteRule ^/%(id)s($|/.*) %(url)s/VirtualHostBase/%(protocol)s/%(domain)s:%(port)s/VirtualHostRoot/_vh_%(id)s$1 [L,P]
-- 
2.30.9