diff options
Diffstat (limited to 'src/lib/Server/Snapshots/__init__.py')
-rw-r--r-- | src/lib/Server/Snapshots/__init__.py | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/lib/Server/Snapshots/__init__.py b/src/lib/Server/Snapshots/__init__.py index 74a3894d7..b94511ebd 100644 --- a/src/lib/Server/Snapshots/__init__.py +++ b/src/lib/Server/Snapshots/__init__.py @@ -1 +1,21 @@ -__all__ = ['models'] +__all__ = ['models', 'db_from_config', 'setup_session'] + +import sqlalchemy, sqlalchemy.orm, ConfigParser + +def db_from_config(fname='/etc/bcfg2.conf'): + cp = ConfigParser.ConfigParser() + cp.read([fname]) + driver = cp.get('snapshots', 'driver') + if driver == 'sqlite': + path = cp.get('snapshots', 'database') + return 'sqlite:///%s' % path + else: + raise Exception, "not done yet" + + +def setup_session(debug=False): + engine = sqlalchemy.create_engine(db_from_config(), + echo=debug) + Session = sqlalchemy.orm.sessionmaker() + Session.configure(bind=engine) + return Session() |