[z3-checkins] r54979 - in z3/deliverance/DeliveranceVHoster/trunk: . dvhoster

magicbronson at codespeak.net magicbronson at codespeak.net
Tue May 20 00:30:10 CEST 2008


Author: magicbronson
Date: Tue May 20 00:30:09 2008
New Revision: 54979

Modified:
   z3/deliverance/DeliveranceVHoster/trunk/dvhoster/dispatcher.py
   z3/deliverance/DeliveranceVHoster/trunk/dvhoster/model.py
   z3/deliverance/DeliveranceVHoster/trunk/fassembler_config.ini_tmpl
Log:
Added a default_rules_dir option that is searched for rules after the host-specific rules.  No longer write out a default rules.xml file, relying instead on the default_rules_dir files to serve as a starting point.

Modified: z3/deliverance/DeliveranceVHoster/trunk/dvhoster/dispatcher.py
==============================================================================
--- z3/deliverance/DeliveranceVHoster/trunk/dvhoster/dispatcher.py	(original)
+++ z3/deliverance/DeliveranceVHoster/trunk/dvhoster/dispatcher.py	Tue May 20 00:30:09 2008
@@ -4,6 +4,7 @@
 from paste.request import path_info_pop, construct_url
 from paste import httpexceptions
 from paste.urlparser import StaticURLParser
+from paste.cascade import Cascade
 from paste.fileapp import FileApp
 from paste.deploy.converters import asbool
 from wsgifilter import proxyapp
@@ -61,6 +62,10 @@
 
         logger = make_logger(app_conf.get('logger'), 'dvhoster')
         self.logger = logger
+        
+        self.default_rules = app_conf.get('default_rules_dir',
+                                          os.path.join(data_dir, 'default_rules'))
+        self.default_rules_app = StaticURLParser(self.default_rules)
 
     def __call__(self, environ, start_response):
         """
@@ -86,8 +91,9 @@
         if path_info.startswith('/_rules'):
             path_info_pop(environ)
             environ['QUERY_STRING'] = ''
-            subapp = StaticURLParser(
-                domain_info.rule_dir)
+            print 'cascading applications in', domain_info.rule_dir, self.default_rules
+            subapp = Cascade([StaticURLParser(domain_info.rule_dir),
+                             self.default_rules_app])
             return subapp(environ, start_response)
 
         static_app = self.find_static_file(domain_info, path_info)

Modified: z3/deliverance/DeliveranceVHoster/trunk/dvhoster/model.py
==============================================================================
--- z3/deliverance/DeliveranceVHoster/trunk/dvhoster/model.py	(original)
+++ z3/deliverance/DeliveranceVHoster/trunk/dvhoster/model.py	Tue May 20 00:30:09 2008
@@ -13,26 +13,6 @@
 
 domain_re = re.compile(r'^[a-z][a-z0-9-]+|[a-z][a-z0-9.\-]+\.[a-z]+$', re.I)
 
-default_rule_xml = '''\
-<?xml version="1.0" encoding="UTF-8"?>
-<rules xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="http://www.plone.org/deliverance" >
-  <xi:include href="standardrules.xml" />
-
-  <copy theme="//div[@id='container']" content="//*[@id='portal-columns']" />
-</rules>
-'''
-
-marker = '<!-- Generated, do not edit! -->'
-abstract_rule_xml = '''\
-<?xml version="1.0" encoding="UTF-8"?>
-MARKER
-<rules xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="http://www.plone.org/deliverance" >
-  <xi:include href="standardrules.xml" />
-
-  <copy theme="//*[%(theme_expr)s]" content="//*[%(content_expr)s]" />
-</rules>
-'''.replace('MARKER', marker)
-
 default_standardrules = '''\
 <?xml version="1.0" encoding="UTF-8"?>
 <rules xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="http://www.plone.org/deliverance">
@@ -207,14 +187,6 @@
                     self.static_dir]:
             if not os.path.exists(dir):
                 os.mkdir(dir)
-        for filename, content in [
-            ('rule.xml', default_rule_xml),
-            ('standardrules.xml', default_standardrules)]:
-            filename = os.path.join(self.rule_dir, filename)
-            if not os.path.exists(filename):
-                f = open(filename, 'w')
-                f.write(content)
-                f.close()
 
     @property
     def initialized(self):

Modified: z3/deliverance/DeliveranceVHoster/trunk/fassembler_config.ini_tmpl
==============================================================================
--- z3/deliverance/DeliveranceVHoster/trunk/fassembler_config.ini_tmpl	(original)
+++ z3/deliverance/DeliveranceVHoster/trunk/fassembler_config.ini_tmpl	Tue May 20 00:30:09 2008
@@ -77,6 +77,9 @@
 # This is at least better than the old fallback of hitting openplans.org.
 default_theme_uri = {{project.req_settings.get('default_theme_uri', '/theme.html')}}
 
+# Deliverance will look for rules in this directory if a host-specific
+# rule is not found.
+default_rules_dir = {{env.var}}/deliverance/default_rules
 
 # Specifies whether to load authentication middleware
 auth_enabled = True


More information about the z3-checkins mailing list