Source code for concurrent.core.db.dbmanager
# -*- coding: utf-8 -*-
"""
DataBase Manager
"""
from concurrent.core.components.component import Component, implements, ExtensionPoint
from concurrent.core.db.api import IDBEngine
from concurrent.core.config.config import ExtensionPointListItem
__all__ = ['DatabaseManager']
[docs]class DatabaseManager(Component):
"""
Class that handles connection and high-level database access
"""
engines = ExtensionPoint(IDBEngine)
db_engines = ExtensionPointListItem('database', 'engine', IDBEngine, 'PostGreSQLEngine',
"""Available DB engines that we can use""")
[docs] def initdb(self):
"""
Initialize all engines we need
"""
for engine in self.db_engines:
engine.initdb()
[docs] def dbshutdown(self):
"""
Inform engines that we should shutdown
"""
for engine in self.engines:
engine.dbshutdown()