]> git.ipfire.org Git - people/jschlag/pbs.git/commitdiff
Simplify settings
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 6 Oct 2017 16:30:56 +0000 (17:30 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 6 Oct 2017 16:30:56 +0000 (17:30 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/settings.py

index db1a6a023c94674fbdde277494688cff804da18e..5656c71d9b947d35d5b98426bec82af4eae20f29 100644 (file)
@@ -1,42 +1,14 @@
 #!/usr/bin/python
 
-import time
-
 from . import base
-from . import cache
 
 class Settings(base.Object):
-       def __init__(self, pakfire):
-               base.Object.__init__(self, pakfire)
-
-               self.next_update = 0
-
-       @property
-       def data(self):
-               now = time.time()
-
-               # Update the cache if no data is available or the data
-               # has timed out.
-               if not hasattr(self, "_data") or now >= self.next_update:
-                       self._data = self.fetch_everything()
-                       self.next_update = now + 300
-
-               return self._data
-
-       def fetch_everything(self):
-               res = self.db.query("SELECT k, v FROM settings")
-
-               ret = {}
-               for row in res:
-                       ret[row.k] = row.v
-
-               return ret
-
        def get(self, key, default=None):
-               try:
-                       return self.data[key]
-               except KeyError:
-                       return default
+               res = self.db.get("SELECT v FROM settings WHERE k = %s", key)
+               if res:
+                       return res.v
+
+               return default
 
        def get_int(self, key, default=None):
                value = self.get(key, default)
@@ -55,7 +27,6 @@ class Settings(base.Object):
                        return None
 
        def set(self, key, value):
-               self.db.execute("REPLACE INTO settings(k, v) VALUES(%s, %s)", key, value)
-
-               if hasattr(self, "_data"):
                      self._data[key] = value
+               self.db.execute("INSERT INTO settings(k, v) VALUES(%s, %s) \
+                       ON CONFLICT (k) DO UPDATE v = excluded.v WHERE k = excluded.k",
+                       key, value)
No newline at end of file