]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - webapp/backend/memcached.py
Major update of the webapp.
[people/shoehn/ipfire.org.git] / webapp / backend / memcached.py
CommitLineData
b3250465
MT
1#!/usr/bin/python
2
9068dba1 3import logging
b3250465
MT
4import memcache
5
9068dba1 6from misc import Object
b3250465 7
9068dba1
MT
8class Memcached(Object):
9 def init(self):
10 self._connection = None
b3250465 11
9068dba1 12 servers = self.get_servers()
b3250465 13
9068dba1
MT
14 # Nothing to do, if no servers have been configured.
15 if not servers:
16 logging.warning("No memcache servers defined")
17 return
18
19 logging.info("Using memcache servers: %s" % ", ".join(servers))
20 self._connection = memcache.Client(servers, debug=0)
21
22 def get_servers(self):
23 servers = self.settings.get("memcached_servers")
24
25 if servers:
26 return servers.split(" ")
b3250465 27
02f2d7fe 28 def get(self, key, *args, **kwargs):
9068dba1
MT
29 if not self._connection:
30 return
31
02f2d7fe 32 key = str(key)
b3250465 33
02f2d7fe 34 return self._connection.get(key, *args, **kwargs)
3504c80a 35
02f2d7fe 36 def set(self, key, *args, **kwargs):
9068dba1
MT
37 if not self._connection:
38 return
39
02f2d7fe
MT
40 key = str(key)
41
42 return self._connection.set(key, *args, **kwargs)
43
44 def delete(self, key, *args, **kwargs):
9068dba1
MT
45 if not self._connection:
46 return
47
02f2d7fe
MT
48 key = str(key)
49
50 return self._connection.delete(key, *args, **kwargs)