Simple Python interface for the Varnish management port
Python
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin initial import Nov 7, 2009
AUTHORS.txt
LICENSE.txt better packaging, version bump Apr 14, 2011
MANIFEST better packaging, version bump Apr 14, 2011
MANIFEST.in
README.rst
runtests.py refactored http purge again for consistent interface, improved examples Mar 14, 2012
setup.py fixed missing import in auth, version bump Mar 14, 2012
varnish.py

README.rst

Simple Python interface for the Varnish management port

Author: Justin Quick <justquick@gmail.com>, Sandy Walsh <github@darksecretsoftware.com>
Version: 0.2
pip install python-varnish==0.2.1

If you are running a version of varnish older than 3.0 then install python-varnish==0.1.2 instead.

Varnish is a state-of-the-art, high-performance HTTP accelerator. For more information checkout Varnish Site

Varnish provides a simple telnet management interface for doing things like:

  • reloading configurations
  • purging URLs from cache
  • view statistics
  • start and stop the server

This Python API takes full advantage of the available commands and can run across multiple Varnish instances. Here are the features of this python module (compared to python-varnishadm)

  • Uses telnetlib instead of raw sockets
  • Implements threading module
  • Can run commands across multiple Varnish instances
  • More comprehensive methods, closely matching the management API (purge_*, vcl_*, etc.)
  • Unittests

Example:

manager = VarnishManager( ('server1:6082', 'server2:6082') )
manager.run('ping')
manager.run('ban.url', '^/secret/$')
manager.run('ban.list')
manager.run('purge.url', 'http://mydomain.com/articles/.*')
manager.close()

Testing:

python runtests.py