]> git.ipfire.org Git - pbs.git/commitdiff
Initialise database connection only when we need it
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 6 Oct 2017 17:02:59 +0000 (18:02 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 6 Oct 2017 17:02:59 +0000 (18:02 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/__init__.py
src/buildservice/base.py

index ad2790a6dac412cb1790bcf9def9d3b156bb5c31..ab3a194ed9967f46b308d0a4582c0582545d902a 100644 (file)
@@ -27,6 +27,7 @@ from . import updates
 from . import uploads
 from . import users
 
+from .decorators import *
 from .constants import *
 
 class Backend(object):
@@ -35,7 +36,6 @@ class Backend(object):
                self.config = self.read_config(config_file)
 
                # Connect to databases.
-               self.db = self.connect_database()
                self.geoip_db = self.connect_database("geoip-database")
 
                # Global pakfire settings (from database).
@@ -65,17 +65,16 @@ class Backend(object):
                # A pool to store strings (for comparison).
                self.pool        = pakfire.satsolver.Pool("dummy")
 
-       def __del__(self):
-               if self.db:
-                       self.db.close()
-                       del self.db
-
        def read_config(self, path):
                c = ConfigParser.SafeConfigParser()
                c.read(path)
 
                return c
 
+       @lazy_property
+       def db(self):
+               return self.connect_database()
+
        def connect_database(self, section="database"):
                db = self.config.get(section, "db")
                host = self.config.get(section, "host")
index 9a674ce0a35c7bb8f54fd2a99c55d36f7ebe783b..a69306f3e45306616f5037020d7ced7b31a94c26 100644 (file)
@@ -12,9 +12,6 @@ class Object(object):
        def __init__(self, backend, *args, **kwargs):
                self.backend = backend
 
-               # Shortcut to the database.
-               self.db = self.backend.db
-
                # Shortcut to settings.
                if hasattr(self.pakfire, "settings"):
                        self.settings = self.backend.settings
@@ -28,6 +25,13 @@ class Object(object):
                """
                pass
 
+       @lazy_property
+       def db(self):
+               """
+                       Shortcut to database
+               """
+               return self.backend.db
+
        @lazy_property
        def pakfire(self):
                """