Merge "Do not use LazyPluggable"

This commit is contained in:
Jenkins
2014-11-22 14:48:44 +00:00
committed by Gerrit Code Review
2 changed files with 29 additions and 10 deletions

View File

@@ -19,27 +19,44 @@
"""Metadata setup commands.""" """Metadata setup commands."""
from glance.common import utils import threading
from oslo.config import cfg
from oslo import db
from stevedore import driver
from glance.db.sqlalchemy import api as db_api from glance.db.sqlalchemy import api as db_api
IMPL = utils.LazyPluggable(
'backend', _IMPL = None
config_group='database', _LOCK = threading.Lock()
sqlalchemy='glance.db.sqlalchemy.metadata')
db.options.set_defaults(cfg.CONF)
def get_backend():
global _IMPL
if _IMPL is None:
with _LOCK:
if _IMPL is None:
_IMPL = driver.DriverManager(
"glance.database.metadata_backend",
cfg.CONF.database.backend).driver
return _IMPL
def load_metadefs(): def load_metadefs():
"""Read metadefinition files and insert data into the database""" """Read metadefinition files and insert data into the database"""
return IMPL.db_load_metadefs(engine=db_api.get_engine(), return get_backend().db_load_metadefs(engine=db_api.get_engine(),
metadata_path=None) metadata_path=None)
def unload_metadefs(): def unload_metadefs():
"""Unload metadefinitions from database""" """Unload metadefinitions from database"""
return IMPL.db_unload_metadefs(engine=db_api.get_engine()) return get_backend().db_unload_metadefs(engine=db_api.get_engine())
def export_metadefs(): def export_metadefs():
"""Export metadefinitions from database to files""" """Export metadefinitions from database to files"""
return IMPL.db_export_metadefs(engine=db_api.get_engine(), return get_backend().db_export_metadefs(engine=db_api.get_engine(),
metadata_path=None) metadata_path=None)

View File

@@ -45,6 +45,8 @@ oslo.config.opts =
glance.manage = glance.opts:list_manage_opts glance.manage = glance.opts:list_manage_opts
glance.database.migration_backend = glance.database.migration_backend =
sqlalchemy = oslo.db.sqlalchemy.migration sqlalchemy = oslo.db.sqlalchemy.migration
glance.database.metadata_backend =
sqlalchemy = glance.db.sqlalchemy.metadata
[build_sphinx] [build_sphinx]
all_files = 1 all_files = 1