diff --git a/slapos/recipe/apache_frontend/__init__.py b/slapos/recipe/apache_frontend/__init__.py index d67f08fdfaf5e4420503c9e9d4061cde20961e8d..22c07b8cd2060abd105b0565b7e87d6a9a0dc1cc 100644 --- a/slapos/recipe/apache_frontend/__init__.py +++ b/slapos/recipe/apache_frontend/__init__.py @@ -85,8 +85,20 @@ class Recipe(BaseSlapRecipe): domain_dict = {} for slave_instance in slave_instance_list: + # Sanitize inputs backend_url = slave_instance.get("url", None) reference = slave_instance.get("slave_reference") + + if slave_instance.haskey("enable_cache"): + enable_cache = slave_instance.get("enable_cache", "").upper() in ('1', 'TRUE') + else: + enable_cache = False + + if slave_instance.haskey("type"): + slave_type = slave_instance.get("type", "").lower() + else: + slave_type = None + # Set scheme (http? https?) # Future work may allow to choose between http and https (or both?) scheme = 'http://' @@ -120,7 +132,7 @@ class Recipe(BaseSlapRecipe): slave_dict[reference] = "%s%s/" % (scheme, domain) # Check if we want varnish+stunnel cache. - if slave_instance.get("enable_cache", "").upper() in ('1', 'TRUE'): + if enable_cache: # XXX-Cedric : need to refactor to clean code? (to many variables) rewrite_rule = self.configureVarnishSlave( base_varnish_port, backend_url, reference, service_dict, domain) @@ -134,8 +146,7 @@ class Recipe(BaseSlapRecipe): # rule structure. # So we will have one RewriteMap for normal websites, and one # RewriteMap for Zope Virtual Host Monster websites. - if slave_instance.get("type") is not None and \ - slave_instance.get("type", "").lower() in ['zope']: + if slave_type in ['zope']: rewrite_rule_zope_list.append(rewrite_rule) # For Zope, we have another dict containing the path e.g '/erp5/... rewrite_rule_path = "%s %s" % (domain, slave_instance.get('path', ''))