[Erp5-report] r41411 luke - in /erp5/trunk/utils/erp5.recipe.apache: ./ src/erp5/recipe/apa...
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Dec 14 14:44:08 CET 2010
Author: luke
Date: Tue Dec 14 14:44:08 2010
New Revision: 41411
URL: http://svn.erp5.org?rev=41411&view=rev
Log:
- initial version of apache generation which is capable to serve zope
Added:
erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/templates/
erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/templates/zope.conf.in
Modified:
erp5/trunk/utils/erp5.recipe.apache/CHANGES.txt
erp5/trunk/utils/erp5.recipe.apache/setup.py
erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/__init__.py
Modified: erp5/trunk/utils/erp5.recipe.apache/CHANGES.txt
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.recipe.apache/CHANGES.txt?rev=41411&r1=41410&r2=41411&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.recipe.apache/CHANGES.txt [utf8] (original)
+++ erp5/trunk/utils/erp5.recipe.apache/CHANGES.txt [utf8] Tue Dec 14 14:44:08 2010
@@ -1,2 +1,4 @@
1.0 (unreleased)
----------------
+
+ - initial version
Modified: erp5/trunk/utils/erp5.recipe.apache/setup.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.recipe.apache/setup.py?rev=41411&r1=41410&r2=41411&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.recipe.apache/setup.py [utf8] (original)
+++ erp5/trunk/utils/erp5.recipe.apache/setup.py [utf8] Tue Dec 14 14:44:08 2010
@@ -18,7 +18,8 @@ setup(
version = version,
author = 'Łukasz Nowak',
author_email = 'luke at nexedi.com',
- description = "zc.buildout recipe to create apache instances",
+ description = "zc.buildout recipe to create apache instances which servers"
+ "Zope content",
long_description = long_description,
license = "ZPL 2.1",
keywords = "apache server buildout",
@@ -34,5 +35,7 @@ setup(
'setuptools',
'zc.recipe.egg',
],
- entry_points = {'zc.buildout': ['default = %s:Recipe' % name]},
+ entry_points = {'zc.buildout': [
+ 'default = %s:Zope' % name,
+ ]},
)
Modified: erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/__init__.py
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/__init__.py?rev=41411&r1=41410&r2=41411&view=diff
==============================================================================
--- erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/__init__.py [utf8] (original)
+++ erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/__init__.py [utf8] Tue Dec 14 14:44:08 2010
@@ -13,12 +13,81 @@
#
##############################################################################
-class Recipe:
+import os
+import pkg_resources
+
+class Apache:
def __init__(self, buildout, name, options):
self.buildout, self.name, self.options = buildout, name, options
+ self.options['location'] = self.options.get('location',
+ os.path.join(self.buildout['buildout']['parts-directory'], name)
+ ).strip()
+
+ self.options['conf_directory'] = self.options.get('conf_directory',
+ os.path.join(self.options['location'], 'etc')).strip()
+ self.options['config_file'] = os.path.join(self.options['conf_directory'],
+ self.name + '.conf')
+ self.options['running_wrapper'] = self.options.get('running_wrapper',
+ os.path.join(self.buildout['buildout']['bin-directory'], name))
+
+ self.options['var_directory'] = self.options.get('var_directory',
+ os.path.join(self.buildout['buildout']['directory'], 'var')).strip()
+ self.options['log_directory'] = self.options.get('log_directory',
+ os.path.join(self.options['var_directory'], 'log')).strip()
+ self.options['error_log'] = os.path.join(self.options['log_directory'],
+ name + '_error.log')
+ self.options['access_log'] = os.path.join(self.options['log_directory'],
+ name + '_access.log')
+
+ self.options['run_directory'] = self.options.get('run_directory',
+ os.path.join(self.options['var_directory'], 'run')).strip()
+ self.options['pid_file'] = os.path.join(self.options['run_directory'],
+ name + '.pid')
+ self.options['lock_file'] = os.path.join(self.options['run_directory'],
+ name + '.lock')
+
+ self.options['path'] = self.options.get('path', '').strip()
+ self.options['server_admin'] = self.options.get('server_admin',
+ 'unknown').strip()
+ self.options['server_name'] = self.options.get('server_name',
+ 'localhost').strip()
+ self.options['regex_server_name'] = '^' + self.options[
+ 'server_name'].replace('.', '\\.') + '$'
+
+ self.options['protocol'] = self.options.get('protocol', 'http').strip()
+ if self.options['protocol'] == 'https':
+ self.options['ssl_state'] = 'on'
+ for k in 'ssl_certificate', 'ssl_key':
+ self.options[k] = self.options[k].strip()
+ else:
+ self.options['ssl_state'] = 'off'
+ for k in 'ssl_certificate', 'ssl_key':
+ self.options[k] = self.options.get(k, '').strip()
+
+ for k in 'ip', 'port':
+ self.options[k] = self.options[k].strip()
def install(self):
- raise NotImplementedError
+ for d in [self.options['conf_directory'], self.options['log_directory'],
+ self.options['run_directory']]:
+ if not os.path.exists(d):
+ os.makedirs(d, 0750)
+
+ # by default update is same as install
+ update = install
- def update(self):
- raise NotImplementedError
+class Zope(Apache):
+ """Apache instance to serve Zope backend"""
+ def __init__(self, buildout, name, options):
+ Apache.__init__(self, buildout, name, options)
+ for k in 'backend_ip', 'backend_port', 'backend_path':
+ self.options[k] = self.options[k].strip()
+
+ def install(self):
+ Apache.install(self)
+ open(self.options['config_file'], 'w').write(pkg_resources.resource_string(
+ __name__, 'templates/zope.conf.in') % self.options)
+ open(self.options['running_wrapper'], 'w').write("""#!/bin/sh
+exec %(httpd_binary)s -f %(config_file)s -DFOREGROUND $*""" % self.options)
+ os.chmod(self.options['running_wrapper'], 0750)
+ return [self.options['location']]
Added: erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/templates/zope.conf.in
URL: http://svn.erp5.org/erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/templates/zope.conf.in?rev=41411&view=auto
==============================================================================
--- erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/templates/zope.conf.in (added)
+++ erp5/trunk/utils/erp5.recipe.apache/src/erp5/recipe/apache/templates/zope.conf.in [utf8] Tue Dec 14 14:44:08 2010
@@ -0,0 +1,92 @@
+# Apache configuration file for Zope
+# Automatically generated
+<Location /%(path)s>
+ Order Deny,Allow
+ Deny from all
+ Allow from all
+</Location>
+PidFile "%(pid_file)s"
+LockFile "%(lock_file)s"
+Listen %(ip)s:%(port)s
+SSLEngine %(ssl_state)s
+SSLCertificateFile %(ssl_certificate)s
+SSLCertificateKeyFile %(ssl_key)s
+ServerName %(server_name)s
+RewriteEngine On
+
+RewriteCond %%{SERVER_NAME} !%(regex_server_name)s
+RewriteRule . - [F,L]
+
+RewriteCond %%{SERVER_NAME} %(regex_server_name)s
+RewriteRule /%(path)s($|/.*) http://%(backend_ip)s:%(backend_port)s/VirtualHostBase/%(protocol)s/%%{SERVER_NAME}:%(port)s/%(backend_path)s/VirtualHostRoot/_vh_%(path)s$1 [L,P]
+
+LoadModule authz_host_module modules/mod_authz_host.so
+LoadModule cache_module modules/mod_cache.so
+LoadModule disk_cache_module modules/mod_disk_cache.so
+LoadModule dbd_module modules/mod_dbd.so
+LoadModule bucketeer_module modules/mod_bucketeer.so
+LoadModule dumpio_module modules/mod_dumpio.so
+LoadModule echo_module modules/mod_echo.so
+LoadModule case_filter_module modules/mod_case_filter.so
+LoadModule case_filter_in_module modules/mod_case_filter_in.so
+LoadModule ext_filter_module modules/mod_ext_filter.so
+LoadModule include_module modules/mod_include.so
+LoadModule filter_module modules/mod_filter.so
+LoadModule substitute_module modules/mod_substitute.so
+LoadModule charset_lite_module modules/mod_charset_lite.so
+LoadModule deflate_module modules/mod_deflate.so
+LoadModule log_config_module modules/mod_log_config.so
+LoadModule log_forensic_module modules/mod_log_forensic.so
+LoadModule logio_module modules/mod_logio.so
+LoadModule env_module modules/mod_env.so
+LoadModule mime_magic_module modules/mod_mime_magic.so
+LoadModule cern_meta_module modules/mod_cern_meta.so
+LoadModule expires_module modules/mod_expires.so
+LoadModule headers_module modules/mod_headers.so
+LoadModule ident_module modules/mod_ident.so
+LoadModule usertrack_module modules/mod_usertrack.so
+LoadModule unique_id_module modules/mod_unique_id.so
+LoadModule setenvif_module modules/mod_setenvif.so
+LoadModule version_module modules/mod_version.so
+LoadModule proxy_module modules/mod_proxy.so
+LoadModule proxy_http_module modules/mod_proxy_http.so
+LoadModule ssl_module modules/mod_ssl.so
+LoadModule mime_module modules/mod_mime.so
+LoadModule dav_module modules/mod_dav.so
+LoadModule status_module modules/mod_status.so
+LoadModule autoindex_module modules/mod_autoindex.so
+LoadModule asis_module modules/mod_asis.so
+LoadModule info_module modules/mod_info.so
+LoadModule cgi_module modules/mod_cgi.so
+LoadModule dav_fs_module modules/mod_dav_fs.so
+LoadModule vhost_alias_module modules/mod_vhost_alias.so
+LoadModule negotiation_module modules/mod_negotiation.so
+LoadModule imagemap_module modules/mod_imagemap.so
+LoadModule alias_module modules/mod_alias.so
+LoadModule rewrite_module modules/mod_rewrite.so
+ServerAdmin %(server_admin)s
+
+<Directory />
+ Options FollowSymLinks
+ AllowOverride None
+ Order deny,allow
+ Deny from all
+</Directory>
+
+ErrorLog "%(error_log)s"
+LogLevel warn
+
+LogFormat "%%h %%l %%u %%t \"%%r\" %%>s %%b \"%%{Referer}i\" \"%%{User-Agent}i\"" combined
+LogFormat "%%h %%l %%u %%t \"%%r\" %%>s %%b" common
+# You need to enable mod_logio.c to use %%I and %%O
+LogFormat "%%h %%l %%u %%t \"%%r\" %%>s %%b \"%%{Referer}i\" \"%%{User-Agent}i\" %%I %%O" combinedio
+CustomLog "%(access_log)s" common
+
+DefaultType text/plain
+
+TypesConfig conf/mime.types
+
+AddType application/x-compress .Z
+AddType application/x-gzip .gz .tgz
+SSLRandomSeed startup builtin
+SSLRandomSeed connect builtin
More information about the Erp5-report
mailing list