Merge "Do not use LazyPluggable"

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

View File

@ -19,27 +19,44 @@
"""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
IMPL = utils.LazyPluggable(
'backend',
config_group='database',
sqlalchemy='glance.db.sqlalchemy.metadata')
_IMPL = None
_LOCK = threading.Lock()
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():
"""Read metadefinition files and insert data into the database"""
return IMPL.db_load_metadefs(engine=db_api.get_engine(),
metadata_path=None)
return get_backend().db_load_metadefs(engine=db_api.get_engine(),
metadata_path=None)
def unload_metadefs():
"""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():
"""Export metadefinitions from database to files"""
return IMPL.db_export_metadefs(engine=db_api.get_engine(),
metadata_path=None)
return get_backend().db_export_metadefs(engine=db_api.get_engine(),
metadata_path=None)

View File

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