]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blobdiff - webapp/backend/memcached.py
Major update of the webapp.
[people/shoehn/ipfire.org.git] / webapp / backend / memcached.py
index a56b80ee9e1b1a7f806019445a89259a45e704a8..105f1f54a3fbb4fba1fbd1ee36e19feee130303c 100644 (file)
@@ -1,30 +1,50 @@
 #!/usr/bin/python
 
+import logging
 import memcache
 
-from misc import Singleton
-from settings import Settings
+from misc import Object
 
-class Memcached(object):
-       __metaclass__ = Singleton
+class Memcached(Object):
+       def init(self):
+               self._connection = None
 
-       def __init__(self):
-               # Fetch hosts from database
-               hosts = Settings().get("memcached_servers").split(",")
+               servers = self.get_servers()
 
-               self._connection = memcache.Client(hosts, debug=0)
+               # Nothing to do, if no servers have been configured.
+               if not servers:
+                       logging.warning("No memcache servers defined")
+                       return
+
+               logging.info("Using memcache servers: %s" % ", ".join(servers))
+               self._connection = memcache.Client(servers, debug=0)
+
+       def get_servers(self):
+               servers = self.settings.get("memcached_servers")
+
+               if servers:
+                       return servers.split(" ")
 
        def get(self, key, *args, **kwargs):
+               if not self._connection:
+                       return
+
                key = str(key)
 
                return self._connection.get(key, *args, **kwargs)
 
        def set(self, key, *args, **kwargs):
+               if not self._connection:
+                       return
+
                key = str(key)
 
                return self._connection.set(key, *args, **kwargs)
 
        def delete(self, key, *args, **kwargs):
+               if not self._connection:
+                       return
+
                key = str(key)
 
                return self._connection.delete(key, *args, **kwargs)