Recipe to install and configure Pound
Project description
What is iw.recipe.pound ?
iw.recipe.pound is a buildout recipe to compile and configure Pound. It uses zc.recipe.cmmi then configure pound.cfg.
How to use iw.recipe.pound ?
As a recipe, you have to provide a part in your buildout file:
>>> import getpass >>> owner = group = getpass.getuser() >>> import os >>> data_dir = os.path.join(test_dir, 'data') >>> parts_dir = os.path.join(data_dir, 'parts') >>> buildout = {'instance': {'location': test_dir}, ... 'buildout': {'directory': test_dir, ... 'parts-directory': test_dir}} >>> name = 'pound' >>> options = {'url': 'mypackage.tgz', ... 'owner': owner, ... 'group': owner}
For each balancer you want to create, you have to define it:
>>> balancers = """\ ... one 80 127.0.0.1:8080 127.0.0.1:8081 ... two 90 127.0.0.1:8082 127.0.0.1:8083 169.1.1.2:80 ... """ >>> options['balancers'] = balancers
Each line is composed of the name and the port, and a list of backends, defines by a host and a port.
Creating the recipe:
>>> from iw.recipe.pound import Recipe >>> recipe = Recipe(buildout, name, options)
Running it:
>>> paths = recipe.install()
Checking the files created:
>>> paths '/.../tests/pound' >>> os.listdir(os.path.join(paths, 'sbin')) ['pound', 'poundctl']
Checking the pound.cfg created:
>>> cfg = os.path.join(paths, 'etc', 'pound.cfg') >>> print open(cfg).read() ## pound.cfg ## created by iw.recipe.pound <BLANKLINE> ## global options: User "tziade" Group "tziade" <BLANKLINE> ## Logging: (goes to syslog by default) ## 0 no logging ## 1 normal ## 2 extended ## 3 Apache-style (common log format) LogLevel 1 <BLANKLINE> ## Log facility -- the manpage for syslog.conf(5) lists valid values. #LogFacility daemon <BLANKLINE> ## check backend every X secs: Alive 30 <BLANKLINE> ## use hardware-accelleration card supported by openssl(1): #SSLEngine "<hw>" <BLANKLINE> ## listen, redirect and ... to: # balancer for one ListenHTTP Address 127.0.0.1 Port 80 # for webdav xHTTP 2 Service BackEnd Address 127.0.0.1 Port 8080 End BackEnd Address 127.0.0.1 Port 8081 End <BLANKLINE> # for session cookies Session Type COOKIE ID "__ac" TTL 300 End End End <BLANKLINE> # balancer for two ListenHTTP Address 127.0.0.1 Port 90 # for webdav xHTTP 2 Service BackEnd Address 127.0.0.1 Port 8082 End BackEnd Address 127.0.0.1 Port 8083 End BackEnd Address 169.1.1.2 Port 80 End <BLANKLINE> # for session cookies Session Type COOKIE ID "__ac" TTL 300 End End End <BLANKLINE> <BLANKLINE> <BLANKLINE> <BLANKLINE>
Cleaning up the files:
>>> os.system('rm -rf %s' % paths) 0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distributions
iw.recipe.pound-0.1-py2.5.egg
(167.2 kB
view hashes)
iw.recipe.pound-0.1-py2.4.egg
(167.3 kB
view hashes)