diff options
author | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2014-02-28 11:25:40 -0500 |
---|---|---|
committer | Chris St. Pierre <chris.a.st.pierre@gmail.com> | 2014-02-28 11:54:53 -0500 |
commit | e7d8c70958e80924408c0e31fa06f1ad06607f99 (patch) | |
tree | ee20a10e024ff7859de88de6cd5d63f5c4eb2171 /src/lib/Bcfg2/Reporting/Storage/DjangoORM.py | |
parent | a3635ff0a73b8aec6ec66eb964e9ae29151e4e78 (diff) | |
download | bcfg2-e7d8c70958e80924408c0e31fa06f1ad06607f99.tar.gz bcfg2-e7d8c70958e80924408c0e31fa06f1ad06607f99.tar.bz2 bcfg2-e7d8c70958e80924408c0e31fa06f1ad06607f99.zip |
Reporting: properly close db connection
Close the db connection at the end of each DjangoORM import, not when
the reporting collector shuts down. The collector may not have even
opened a connection, in the case of a storage backend other than
DjangoORM.
Fixes #157
Diffstat (limited to 'src/lib/Bcfg2/Reporting/Storage/DjangoORM.py')
-rw-r--r-- | src/lib/Bcfg2/Reporting/Storage/DjangoORM.py | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py index ef1e92103..e2e565b1d 100644 --- a/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py +++ b/src/lib/Bcfg2/Reporting/Storage/DjangoORM.py @@ -18,6 +18,7 @@ from django.core import management from django.core.exceptions import ObjectDoesNotExist, MultipleObjectsReturned from django.db.models import FieldDoesNotExist from django.core.cache import cache +from django import db #Used by GetCurrentEntry import difflib @@ -370,6 +371,11 @@ class DjangoORM(StorageBase): except: self.logger.error("Failed to import interaction: %s" % traceback.format_exc().splitlines()[-1]) + finally: + self.logger.info("%s: Closing database connection" % + self.__class__.__name__) + db.close_connection() + def validate(self): """Validate backend storage. Should be called once when loaded""" @@ -451,4 +457,3 @@ class DjangoORM(StorageBase): else: ret.append(None) return ret - |