Move to billingstack.storage
Change-Id: I64979139fc99bc1e6c7c27e64e4ecdddf169eb26
This commit is contained in:
parent
bbbb1d0b0d
commit
a6d2cacd6d
@ -16,7 +16,7 @@
|
|||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
from billingstack.openstack.common import log as logging
|
from billingstack.openstack.common import log as logging
|
||||||
from billingstack.openstack.common.rpc import service as rpc_service
|
from billingstack.openstack.common.rpc import service as rpc_service
|
||||||
from billingstack.biller import storage
|
from billingstack.storage.utils import get_connection
|
||||||
|
|
||||||
|
|
||||||
cfg.CONF.import_opt('biller_topic', 'billingstack.biller.rpcapi')
|
cfg.CONF.import_opt('biller_topic', 'billingstack.biller.rpcapi')
|
||||||
@ -39,5 +39,5 @@ class Service(rpc_service.Service):
|
|||||||
super(Service, self).__init__(*args, **kwargs)
|
super(Service, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.storage_conn = storage.get_connection()
|
self.storage_conn = get_connection('biller')
|
||||||
super(Service, self).start()
|
super(Service, self).start()
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from oslo.config import cfg
|
|
||||||
from billingstack.storage import base
|
from billingstack.storage import base
|
||||||
|
|
||||||
|
|
||||||
@ -25,9 +24,3 @@ class StorageEngine(base.StorageEngine):
|
|||||||
|
|
||||||
class Connection(base.Connection):
|
class Connection(base.Connection):
|
||||||
"""Define the base API for biller storage"""
|
"""Define the base API for biller storage"""
|
||||||
|
|
||||||
|
|
||||||
def get_connection():
|
|
||||||
name = cfg.CONF['service:biller'].storage_driver
|
|
||||||
plugin = StorageEngine.get_plugin(name, invoke_on_load=True)
|
|
||||||
return plugin.get_connection()
|
|
||||||
|
@ -20,7 +20,7 @@ from oslo.config import cfg
|
|||||||
from billingstack.openstack.common import log as logging
|
from billingstack.openstack.common import log as logging
|
||||||
from billingstack.openstack.common.rpc import service as rpc_service
|
from billingstack.openstack.common.rpc import service as rpc_service
|
||||||
from billingstack.openstack.common import service as os_service
|
from billingstack.openstack.common import service as os_service
|
||||||
from billingstack.central import storage
|
from billingstack.storage.utils import get_connection
|
||||||
from billingstack import service as bs_service
|
from billingstack import service as bs_service
|
||||||
|
|
||||||
|
|
||||||
@ -41,7 +41,7 @@ class Service(rpc_service.Service):
|
|||||||
super(Service, self).__init__(*args, **kwargs)
|
super(Service, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.storage_conn = storage.get_connection()
|
self.storage_conn = get_connection('central')
|
||||||
super(Service, self).start()
|
super(Service, self).start()
|
||||||
|
|
||||||
def __getattr__(self, name):
|
def __getattr__(self, name):
|
||||||
|
@ -15,7 +15,6 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
#
|
#
|
||||||
# Copied: Moniker
|
# Copied: Moniker
|
||||||
from oslo.config import cfg
|
|
||||||
from billingstack.openstack.common import log as logging
|
from billingstack.openstack.common import log as logging
|
||||||
from billingstack.storage import base
|
from billingstack.storage import base
|
||||||
|
|
||||||
@ -30,29 +29,3 @@ class StorageEngine(base.StorageEngine):
|
|||||||
|
|
||||||
class Connection(base.Connection):
|
class Connection(base.Connection):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
def get_engine(engine_name):
|
|
||||||
"""
|
|
||||||
Return the engine class from the provided engine name
|
|
||||||
"""
|
|
||||||
return StorageEngine.get_plugin(engine_name, invoke_on_load=True)
|
|
||||||
|
|
||||||
|
|
||||||
def get_connection():
|
|
||||||
engine = get_engine(cfg.CONF['service:central'].storage_driver)
|
|
||||||
return engine.get_connection()
|
|
||||||
|
|
||||||
|
|
||||||
def setup_schema():
|
|
||||||
""" Create the DB - Used for testing purposes """
|
|
||||||
LOG.debug("Setting up Schema")
|
|
||||||
connection = get_connection()
|
|
||||||
connection.setup_schema()
|
|
||||||
|
|
||||||
|
|
||||||
def teardown_schema():
|
|
||||||
""" Reset the DB to default - Used for testing purposes """
|
|
||||||
LOG.debug("Tearing down Schema")
|
|
||||||
connection = get_connection()
|
|
||||||
connection.teardown_schema()
|
|
||||||
|
@ -19,7 +19,7 @@ from oslo.config import cfg
|
|||||||
from billingstack.openstack.common import log as logging
|
from billingstack.openstack.common import log as logging
|
||||||
from billingstack.openstack.common import service as os_service
|
from billingstack.openstack.common import service as os_service
|
||||||
from billingstack.openstack.common.rpc import service as rpc_service
|
from billingstack.openstack.common.rpc import service as rpc_service
|
||||||
from billingstack.rater import storage
|
from billingstack.storage.utils import get_connection
|
||||||
from billingstack import service as bs_service
|
from billingstack import service as bs_service
|
||||||
|
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ class Service(rpc_service.Service):
|
|||||||
super(Service, self).__init__(*args, **kwargs)
|
super(Service, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.storage_conn = storage.get_connection()
|
self.storage_conn = get_connection('rater')
|
||||||
super(Service, self).start()
|
super(Service, self).start()
|
||||||
|
|
||||||
def create_usage(self, ctxt, values):
|
def create_usage(self, ctxt, values):
|
||||||
|
38
billingstack/storage/utils.py
Normal file
38
billingstack/storage/utils.py
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
# -*- encoding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# Author: Endre Karlson <endre.karlson@gmail.com>
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
|
||||||
|
from oslo.config import cfg
|
||||||
|
from billingstack.openstack.common import importutils
|
||||||
|
|
||||||
|
|
||||||
|
def get_engine(service_name, driver_name):
|
||||||
|
"""
|
||||||
|
Return the engine class from the provided engine name
|
||||||
|
"""
|
||||||
|
path = 'billingstack.%s.storage.StorageEngine' % service_name
|
||||||
|
base = importutils.import_object(path)
|
||||||
|
return base.get_plugin(driver_name, invoke_on_load=True)
|
||||||
|
|
||||||
|
|
||||||
|
def get_connection(service_name, driver_name=None):
|
||||||
|
"""
|
||||||
|
Return a instance of a storage connection
|
||||||
|
"""
|
||||||
|
driver_name = driver_name or \
|
||||||
|
cfg.CONF['service:%s' % service_name].storage_driver
|
||||||
|
engine = get_engine(service_name, driver_name)
|
||||||
|
return engine.get_connection()
|
@ -14,6 +14,7 @@ from oslo.config import cfg
|
|||||||
from billingstack import exceptions
|
from billingstack import exceptions
|
||||||
from billingstack import paths
|
from billingstack import paths
|
||||||
from billingstack import samples
|
from billingstack import samples
|
||||||
|
from billingstack.storage import utils as storage_utils
|
||||||
from billingstack.openstack.common.context import RequestContext, \
|
from billingstack.openstack.common.context import RequestContext, \
|
||||||
get_admin_context
|
get_admin_context
|
||||||
from billingstack.openstack.common import importutils
|
from billingstack.openstack.common import importutils
|
||||||
@ -142,10 +143,6 @@ class StorageFixture(fixtures.Fixture):
|
|||||||
group=self.svc_group)
|
group=self.svc_group)
|
||||||
set_config(storage_driver=self.driver, group=self.svc_group)
|
set_config(storage_driver=self.driver, group=self.svc_group)
|
||||||
|
|
||||||
# FIXME: Move this to a generic get_storage() method instead?
|
|
||||||
self.module = importutils.import_module(
|
|
||||||
'billingstack.%s.storage' % self.svc)
|
|
||||||
|
|
||||||
# FIXME: Workout a way to support the different storage types
|
# FIXME: Workout a way to support the different storage types
|
||||||
self.helper = SQLAlchemyHelper(self)
|
self.helper = SQLAlchemyHelper(self)
|
||||||
|
|
||||||
@ -175,11 +172,8 @@ class StorageFixture(fixtures.Fixture):
|
|||||||
"""
|
"""
|
||||||
Import the storage module for the service that we are going to act on,
|
Import the storage module for the service that we are going to act on,
|
||||||
then return a connection object for that storage module.
|
then return a connection object for that storage module.
|
||||||
|
|
||||||
:param service: The service.
|
|
||||||
"""
|
"""
|
||||||
engine = self.module.get_engine(self.driver)
|
return storage_utils.get_connection(self.svc, self.driver)
|
||||||
return engine.get_connection()
|
|
||||||
|
|
||||||
|
|
||||||
class ServiceFixture(fixtures.Fixture):
|
class ServiceFixture(fixtures.Fixture):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user