remove the extra parameter 'db_type' in section [DEFAULT]
Change-Id: Id9870f57373f9f2f7045b86703c3cd8e9447d1b7 Signed-off-by: WangChangyu <wang.changyu@zte.com.cn>
This commit is contained in:
parent
84dd0dc361
commit
c87863798d
@ -15,14 +15,6 @@
|
|||||||
from oslo_config import cfg
|
from oslo_config import cfg
|
||||||
|
|
||||||
|
|
||||||
db_opts = [
|
|
||||||
# TODO(yuywz): Change to etcd after all etcd db driver code is landed
|
|
||||||
cfg.StrOpt('db_type',
|
|
||||||
default='sql',
|
|
||||||
help='Defines which db type to use for storing container. '
|
|
||||||
'Possible Values: sql, etcd')
|
|
||||||
]
|
|
||||||
|
|
||||||
sql_opts = [
|
sql_opts = [
|
||||||
cfg.StrOpt('mysql_engine',
|
cfg.StrOpt('mysql_engine',
|
||||||
default='InnoDB',
|
default='InnoDB',
|
||||||
@ -42,12 +34,11 @@ etcd_opts = [
|
|||||||
|
|
||||||
etcd_group = cfg.OptGroup(name='etcd', title='Options for etcd connection')
|
etcd_group = cfg.OptGroup(name='etcd', title='Options for etcd connection')
|
||||||
|
|
||||||
DEFAULT_OPTS = (db_opts + sql_opts)
|
DEFAULT_OPTS = (sql_opts)
|
||||||
ETCD_OPTS = (etcd_opts)
|
ETCD_OPTS = (etcd_opts)
|
||||||
|
|
||||||
|
|
||||||
def register_opts(conf):
|
def register_opts(conf):
|
||||||
conf.register_opts(db_opts)
|
|
||||||
conf.register_opts(sql_opts, 'database')
|
conf.register_opts(sql_opts, 'database')
|
||||||
conf.register_group(etcd_group)
|
conf.register_group(etcd_group)
|
||||||
conf.register_opts(etcd_opts, etcd_group)
|
conf.register_opts(etcd_opts, etcd_group)
|
||||||
|
@ -17,36 +17,23 @@ Base API for Database
|
|||||||
|
|
||||||
from oslo_db import api as db_api
|
from oslo_db import api as db_api
|
||||||
|
|
||||||
from zun.common import exception
|
|
||||||
from zun.common.i18n import _
|
|
||||||
from zun.common import profiler
|
from zun.common import profiler
|
||||||
import zun.conf
|
import zun.conf
|
||||||
|
|
||||||
"""Add the database backend mapping here"""
|
"""Add the database backend mapping here"""
|
||||||
|
|
||||||
CONF = zun.conf.CONF
|
CONF = zun.conf.CONF
|
||||||
_BACKEND_MAPPING = {'sqlalchemy': 'zun.db.sqlalchemy.api'}
|
_BACKEND_MAPPING = {'sqlalchemy': 'zun.db.sqlalchemy.api',
|
||||||
|
'etcd': 'zun.db.etcd.api'}
|
||||||
IMPL = db_api.DBAPI.from_config(CONF,
|
IMPL = db_api.DBAPI.from_config(CONF,
|
||||||
backend_mapping=_BACKEND_MAPPING,
|
backend_mapping=_BACKEND_MAPPING,
|
||||||
lazy=True)
|
lazy=True)
|
||||||
_etcd_instance = None
|
|
||||||
|
|
||||||
|
|
||||||
@profiler.trace("db")
|
@profiler.trace("db")
|
||||||
def _get_dbdriver_instance():
|
def _get_dbdriver_instance():
|
||||||
"""Return a DB API instance."""
|
"""Return a DB API instance."""
|
||||||
if CONF.db_type == 'sql':
|
return IMPL
|
||||||
return IMPL
|
|
||||||
elif CONF.db_type == 'etcd':
|
|
||||||
global _etcd_instance
|
|
||||||
if _etcd_instance is None:
|
|
||||||
import zun.db.etcd.api as etcd_api
|
|
||||||
_etcd_instance = etcd_api.get_connection()
|
|
||||||
return _etcd_instance
|
|
||||||
else:
|
|
||||||
raise exception.ConfigInvalid(
|
|
||||||
_("db_type value of %s is invalid, "
|
|
||||||
"must be sql or etcd") % CONF.db_type)
|
|
||||||
|
|
||||||
|
|
||||||
@profiler.trace("db")
|
@profiler.trace("db")
|
||||||
|
@ -34,14 +34,14 @@ LOG = log.getLogger(__name__)
|
|||||||
CONF = zun.conf.CONF
|
CONF = zun.conf.CONF
|
||||||
|
|
||||||
|
|
||||||
def get_connection():
|
def get_backend():
|
||||||
connection = EtcdAPI(host=CONF.etcd.etcd_host,
|
connection = EtcdAPI(host=CONF.etcd.etcd_host,
|
||||||
port=CONF.etcd.etcd_port)
|
port=CONF.etcd.etcd_port)
|
||||||
return connection
|
return connection
|
||||||
|
|
||||||
|
|
||||||
def clean_all_data():
|
def clean_all_data():
|
||||||
conn = get_connection()
|
conn = get_backend()
|
||||||
conn.clean_all_zun_data()
|
conn.clean_all_zun_data()
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ class Base(object):
|
|||||||
|
|
||||||
def save(self, session=None):
|
def save(self, session=None):
|
||||||
if session is None:
|
if session is None:
|
||||||
session = db.api.get_connection()
|
session = db.api.get_backend()
|
||||||
client = session.client
|
client = session.client
|
||||||
path = self.etcd_path(self.uuid)
|
path = self.etcd_path(self.uuid)
|
||||||
|
|
||||||
@ -110,7 +110,7 @@ class ZunService(Base):
|
|||||||
|
|
||||||
def save(self, session=None):
|
def save(self, session=None):
|
||||||
if session is None:
|
if session is None:
|
||||||
session = db.api.get_connection()
|
session = db.api.get_backend()
|
||||||
client = session.client
|
client = session.client
|
||||||
path = self.etcd_path(self.host + '_' + self.binary)
|
path = self.etcd_path(self.host + '_' + self.binary)
|
||||||
|
|
||||||
@ -259,7 +259,7 @@ class ComputeNode(Base):
|
|||||||
|
|
||||||
def save(self, session=None):
|
def save(self, session=None):
|
||||||
if session is None:
|
if session is None:
|
||||||
session = db.api.get_connection()
|
session = db.api.get_backend()
|
||||||
client = session.client
|
client = session.client
|
||||||
path = self.etcd_path(self.uuid)
|
path = self.etcd_path(self.uuid)
|
||||||
if self.path_already_exist(client, path):
|
if self.path_already_exist(client, path):
|
||||||
|
@ -378,7 +378,7 @@ class Connection(object):
|
|||||||
return _paginate_query(models.ZunService, limit, marker,
|
return _paginate_query(models.ZunService, limit, marker,
|
||||||
sort_key, sort_dir, query)
|
sort_key, sort_dir, query)
|
||||||
|
|
||||||
def list_zun_services_by_binary(cls, binary):
|
def list_zun_services_by_binary(self, binary):
|
||||||
query = model_query(models.ZunService)
|
query = model_query(models.ZunService)
|
||||||
query = query.filter_by(binary=binary)
|
query = query.filter_by(binary=binary)
|
||||||
return _paginate_query(models.ZunService, query=query)
|
return _paginate_query(models.ZunService, query=query)
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
# NOTE(deva): import auth_token so we can override a config option
|
# NOTE(deva): import auth_token so we can override a config option
|
||||||
from keystonemiddleware import auth_token # noqa
|
from keystonemiddleware import auth_token # noqa
|
||||||
from oslo_config import cfg
|
|
||||||
import pecan
|
import pecan
|
||||||
import pecan.testing
|
import pecan.testing
|
||||||
from six.moves.urllib import parse as urlparse
|
from six.moves.urllib import parse as urlparse
|
||||||
@ -40,10 +39,6 @@ class FunctionalTest(base.DbTestCase):
|
|||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(FunctionalTest, self).setUp()
|
super(FunctionalTest, self).setUp()
|
||||||
# NOTE(yuywz): In API test cases, we use sqllite as the DB
|
|
||||||
# backend, so we should set 'db_type' to 'sql' to access
|
|
||||||
# sqllite DB with sqlalchemy api.
|
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
zun.conf.CONF.set_override("auth_version", "v2.0",
|
zun.conf.CONF.set_override("auth_version", "v2.0",
|
||||||
group='keystone_authtoken')
|
group='keystone_authtoken')
|
||||||
zun.conf.CONF.set_override("admin_user", "admin",
|
zun.conf.CONF.set_override("admin_user", "admin",
|
||||||
|
@ -10,8 +10,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
|
|
||||||
|
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as db_api
|
from zun.db import api as db_api
|
||||||
from zun.db.sqlalchemy import api as sqla_api
|
from zun.db.sqlalchemy import api as sqla_api
|
||||||
@ -27,10 +25,6 @@ _DB_CACHE = None
|
|||||||
class DriverTestCase(base.TestCase):
|
class DriverTestCase(base.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(DriverTestCase, self).setUp()
|
super(DriverTestCase, self).setUp()
|
||||||
# NOTE(yuywz): In driver test cases, we use sqllite as
|
|
||||||
# the DB backend, so we should set 'db_type' to 'sql'
|
|
||||||
# to access sqllite DB with sqlalchemy api.
|
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
self.dbapi = db_api._get_dbdriver_instance()
|
self.dbapi = db_api._get_dbdriver_instance()
|
||||||
|
|
||||||
global _DB_CACHE
|
global _DB_CACHE
|
||||||
|
@ -16,6 +16,7 @@ import fixtures
|
|||||||
|
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as db_api
|
from zun.db import api as db_api
|
||||||
|
from zun.db.etcd import api as etcd_api
|
||||||
from zun.db.sqlalchemy import api as sqla_api
|
from zun.db.sqlalchemy import api as sqla_api
|
||||||
from zun.db.sqlalchemy import migration
|
from zun.db.sqlalchemy import migration
|
||||||
from zun.db.sqlalchemy import models
|
from zun.db.sqlalchemy import models
|
||||||
@ -60,7 +61,9 @@ class DbTestCase(base.TestCase):
|
|||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(DbTestCase, self).setUp()
|
super(DbTestCase, self).setUp()
|
||||||
|
|
||||||
self.dbapi = db_api._get_dbdriver_instance()
|
self.dbapi = (db_api._get_dbdriver_instance()
|
||||||
|
if CONF.database.backend == "sqlalchemy"
|
||||||
|
else etcd_api.get_backend())
|
||||||
|
|
||||||
global _DB_CACHE
|
global _DB_CACHE
|
||||||
if not _DB_CACHE:
|
if not _DB_CACHE:
|
||||||
|
@ -10,7 +10,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 oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
|
|
||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
@ -25,7 +24,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbAllocationTestCase(base.DbTestCase):
|
class DbAllocationTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbAllocationTestCase, self).setUp()
|
super(DbAllocationTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_allocation(self):
|
def test_create_allocation(self):
|
||||||
|
@ -23,6 +23,7 @@ import six
|
|||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcdapi
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
||||||
@ -35,7 +36,6 @@ CONF = zun.conf.CONF
|
|||||||
class SqlDbCapsuleTestCase(base.DbTestCase):
|
class SqlDbCapsuleTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(SqlDbCapsuleTestCase, self).setUp()
|
super(SqlDbCapsuleTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_capsule(self):
|
def test_create_capsule(self):
|
||||||
@ -171,7 +171,7 @@ class SqlDbCapsuleTestCase(base.DbTestCase):
|
|||||||
class EtcdDbCapsuleTestCase(base.DbTestCase):
|
class EtcdDbCapsuleTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbCapsuleTestCase, self).setUp()
|
super(EtcdDbCapsuleTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@ -186,7 +186,10 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_capsule_by_uuid(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_capsule_by_uuid(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
capsule = utils.create_test_capsule(context=self.context)
|
capsule = utils.create_test_capsule(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -198,7 +201,10 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_capsule_by_meta_name(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_capsule_by_meta_name(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
capsule = utils.create_test_capsule(context=self.context)
|
capsule = utils.create_test_capsule(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
|
mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
|
||||||
@ -218,9 +224,11 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_capsules(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_capsules(self, mock_db_inst, mock_write, mock_read):
|
||||||
uuids = []
|
uuids = []
|
||||||
capsules = []
|
capsules = []
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
capsule = utils.create_test_capsule(
|
capsule = utils.create_test_capsule(
|
||||||
@ -237,10 +245,12 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_capsules_sorted(self, mock_write,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
mock_read):
|
def test_list_capsules_sorted(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
uuids = []
|
uuids = []
|
||||||
capsules = []
|
capsules = []
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
capsule = utils.create_test_capsule(
|
capsule = utils.create_test_capsule(
|
||||||
@ -261,8 +271,10 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_capsules_with_filters(self, mock_write,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
mock_read):
|
def test_list_capsules_with_filters(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
|
|
||||||
capsule1 = utils.create_test_capsule(
|
capsule1 = utils.create_test_capsule(
|
||||||
@ -292,7 +304,10 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_capsule_by_uuid(self, mock_delete, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_capsule_by_uuid(self, mock_db_inst, mock_delete,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
capsule = utils.create_test_capsule(context=self.context)
|
capsule = utils.create_test_capsule(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -310,7 +325,10 @@ class EtcdDbCapsuleTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_capsule(self, mock_update, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_capsule(self, mock_db_inst,
|
||||||
|
mock_update, mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
capsule = utils.create_test_capsule(context=self.context)
|
capsule = utils.create_test_capsule(context=self.context)
|
||||||
new_meta_name = 'new_meta_name'
|
new_meta_name = 'new_meta_name'
|
||||||
|
@ -22,6 +22,7 @@ from etcd import Client as etcd_client
|
|||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcdapi
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
||||||
@ -33,7 +34,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbComputeNodeTestCase(base.DbTestCase):
|
class DbComputeNodeTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbComputeNodeTestCase, self).setUp()
|
super(DbComputeNodeTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_compute_node(self):
|
def test_create_compute_node(self):
|
||||||
@ -169,7 +169,7 @@ class DbComputeNodeTestCase(base.DbTestCase):
|
|||||||
class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbComputeNodeTestCase, self).setUp()
|
super(EtcdDbComputeNodeTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@ -191,7 +191,10 @@ class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_compute_node_by_uuid(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_compute_node_by_uuid(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
compute_node = utils.create_test_compute_node(
|
compute_node = utils.create_test_compute_node(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -203,7 +206,10 @@ class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_compute_node_by_name(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_compute_node_by_name(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
node = utils.create_test_compute_node(context=self.context)
|
node = utils.create_test_compute_node(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -220,9 +226,11 @@ class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_compute_nodes(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_compute_nodes(self, mock_db_inst, mock_write, mock_read):
|
||||||
hostnames = []
|
hostnames = []
|
||||||
compute_nodes = []
|
compute_nodes = []
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
res_class = utils.create_test_compute_node(
|
res_class = utils.create_test_compute_node(
|
||||||
@ -237,9 +245,12 @@ class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_compute_nodes_sorted(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_compute_nodes_sorted(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
hostnames = []
|
hostnames = []
|
||||||
compute_nodes = []
|
compute_nodes = []
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
res_class = utils.create_test_compute_node(
|
res_class = utils.create_test_compute_node(
|
||||||
@ -255,8 +266,10 @@ class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_compute_node(self, mock_delete,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_compute_node(self, mock_db_inst, mock_delete,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
compute_node = utils.create_test_compute_node(
|
compute_node = utils.create_test_compute_node(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -277,8 +290,10 @@ class EtcdDbComputeNodeTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_compute_node(self, mock_update,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_compute_node(self, mock_db_inst, mock_update,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
compute_node = utils.create_test_compute_node(
|
compute_node = utils.create_test_compute_node(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
|
@ -23,6 +23,7 @@ import six
|
|||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcdapi
|
||||||
from zun.db.etcd.api import EtcdAPI as etcd_api
|
from zun.db.etcd.api import EtcdAPI as etcd_api
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
@ -35,7 +36,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbContainerTestCase(base.DbTestCase):
|
class DbContainerTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbContainerTestCase, self).setUp()
|
super(DbContainerTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_container(self):
|
def test_create_container(self):
|
||||||
@ -234,7 +234,7 @@ class DbContainerTestCase(base.DbTestCase):
|
|||||||
class EtcdDbContainerTestCase(base.DbTestCase):
|
class EtcdDbContainerTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbContainerTestCase, self).setUp()
|
super(EtcdDbContainerTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@ -257,7 +257,9 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_container_by_uuid(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_container_by_uuid(self, mock_inst, mock_write, mock_read):
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
container = utils.create_test_container(context=self.context)
|
container = utils.create_test_container(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -269,7 +271,9 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_container_by_name(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_container_by_name(self, mock_inst, mock_write, mock_read):
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
container = utils.create_test_container(context=self.context)
|
container = utils.create_test_container(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
|
mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
|
||||||
@ -280,7 +284,9 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
self.assertEqual(container.uuid, res.uuid)
|
self.assertEqual(container.uuid, res.uuid)
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
def test_get_container_that_does_not_exist(self, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_container_that_does_not_exist(self, mock_inst, mock_read):
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
self.assertRaises(exception.ContainerNotFound,
|
self.assertRaises(exception.ContainerNotFound,
|
||||||
dbapi.get_container_by_uuid,
|
dbapi.get_container_by_uuid,
|
||||||
@ -289,9 +295,11 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_containers(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_containers(self, mock_inst, mock_write, mock_read):
|
||||||
uuids = []
|
uuids = []
|
||||||
containers = []
|
containers = []
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
container = utils.create_test_container(
|
container = utils.create_test_container(
|
||||||
@ -308,9 +316,11 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_containers_sorted(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_containers_sorted(self, mock_inst, mock_write, mock_read):
|
||||||
uuids = []
|
uuids = []
|
||||||
containers = []
|
containers = []
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(5):
|
for i in range(5):
|
||||||
container = utils.create_test_container(
|
container = utils.create_test_container(
|
||||||
@ -332,7 +342,10 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_containers_with_filters(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_containers_with_filters(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
|
|
||||||
container1 = utils.create_test_container(
|
container1 = utils.create_test_container(
|
||||||
@ -367,7 +380,10 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_container(self, mock_delete, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_container(self, mock_inst, mock_delete,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
container = utils.create_test_container(context=self.context)
|
container = utils.create_test_container(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -378,8 +394,10 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_container_by_uuid(self, mock_delete,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_container_by_uuid(self, mock_inst, mock_delete,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
container = utils.create_test_container(context=self.context)
|
container = utils.create_test_container(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -397,7 +415,10 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_container(self, mock_update, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_container(self, mock_inst, mock_update,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
container = utils.create_test_container(context=self.context)
|
container = utils.create_test_container(context=self.context)
|
||||||
new_image = 'new-image'
|
new_image = 'new-image'
|
||||||
@ -412,10 +433,12 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_container_with_the_same_name(self, mock_update,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_container_with_the_same_name(self, mock_inst, mock_update,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
CONF.set_override("unique_container_name_scope", "project",
|
CONF.set_override("unique_container_name_scope", "project",
|
||||||
group="compute")
|
group="compute")
|
||||||
|
mock_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
container1 = utils.create_test_container(
|
container1 = utils.create_test_container(
|
||||||
name='container-one',
|
name='container-one',
|
||||||
@ -453,8 +476,10 @@ class EtcdDbContainerTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_api, 'list_containers')
|
@mock.patch.object(etcd_api, 'list_containers')
|
||||||
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
def test_create_container_already_exists_in_project_name_space(
|
def test_create_container_already_exists_in_project_name_space(
|
||||||
self, mock_list_containers, mock_write, mock_read):
|
self, mock_db_inst, mock_list_containers, mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
mock_list_containers.return_value = []
|
mock_list_containers.return_value = []
|
||||||
CONF.set_override("unique_container_name_scope", "project",
|
CONF.set_override("unique_container_name_scope", "project",
|
||||||
|
@ -23,6 +23,7 @@ from oslo_utils import uuidutils
|
|||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcdapi
|
||||||
from zun.db.etcd.api import EtcdAPI as etcd_api
|
from zun.db.etcd.api import EtcdAPI as etcd_api
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
@ -86,7 +87,6 @@ class _DBContainerActionBase(base.DbTestCase,
|
|||||||
class DbContainerActionTestCase(_DBContainerActionBase):
|
class DbContainerActionTestCase(_DBContainerActionBase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbContainerActionTestCase, self).setUp()
|
super(DbContainerActionTestCase, self).setUp()
|
||||||
|
|
||||||
def test_container_action_start(self):
|
def test_container_action_start(self):
|
||||||
@ -233,12 +233,15 @@ class DbContainerActionTestCase(_DBContainerActionBase):
|
|||||||
class EtcdDbContainerActionTestCase(_DBContainerActionBase):
|
class EtcdDbContainerActionTestCase(_DBContainerActionBase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbContainerActionTestCase, self).setUp()
|
super(EtcdDbContainerActionTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_container_action_start(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_container_action_start(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
uuid = uuidutils.generate_uuid()
|
uuid = uuidutils.generate_uuid()
|
||||||
action_values = self._create_action_values(uuid)
|
action_values = self._create_action_values(uuid)
|
||||||
@ -254,7 +257,10 @@ class EtcdDbContainerActionTestCase(_DBContainerActionBase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_container_actions_get_by_container(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_container_actions_get_by_container(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
uuid1 = uuidutils.generate_uuid()
|
uuid1 = uuidutils.generate_uuid()
|
||||||
|
|
||||||
@ -306,9 +312,12 @@ class EtcdDbContainerActionTestCase(_DBContainerActionBase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_api, '_action_get_by_request_id')
|
@mock.patch.object(etcd_api, '_action_get_by_request_id')
|
||||||
def test_container_action_event_start(self, mock__action_get_by_request_id,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_container_action_event_start(self, mock_db_inst,
|
||||||
|
mock__action_get_by_request_id,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
"""Create a container action event."""
|
"""Create a container action event."""
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
uuid = uuidutils.generate_uuid()
|
uuid = uuidutils.generate_uuid()
|
||||||
|
|
||||||
@ -347,10 +356,13 @@ class EtcdDbContainerActionTestCase(_DBContainerActionBase):
|
|||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
@mock.patch.object(etcd_api, '_action_get_by_request_id')
|
@mock.patch.object(etcd_api, '_action_get_by_request_id')
|
||||||
@mock.patch.object(etcd_api, '_get_event_by_name')
|
@mock.patch.object(etcd_api, '_get_event_by_name')
|
||||||
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
def test_container_action_event_finish_success(
|
def test_container_action_event_finish_success(
|
||||||
self, mock_get_event_by_name, mock__action_get_by_request_id,
|
self, mock_db_inst, mock_get_event_by_name,
|
||||||
|
mock__action_get_by_request_id,
|
||||||
mock_update, mock_write, mock_read):
|
mock_update, mock_write, mock_read):
|
||||||
"""Finish a container action event."""
|
"""Finish a container action event."""
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
uuid = uuidutils.generate_uuid()
|
uuid = uuidutils.generate_uuid()
|
||||||
|
|
||||||
@ -404,8 +416,11 @@ class EtcdDbContainerActionTestCase(_DBContainerActionBase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_api, '_action_get_by_request_id')
|
@mock.patch.object(etcd_api, '_action_get_by_request_id')
|
||||||
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
def test_container_action_events_get_in_order(
|
def test_container_action_events_get_in_order(
|
||||||
self, mock__action_get_by_request_id, mock_write, mock_read):
|
self, mock_db_inst, mock__action_get_by_request_id,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcdapi.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
uuid1 = uuidutils.generate_uuid()
|
uuid1 = uuidutils.generate_uuid()
|
||||||
|
|
||||||
|
@ -30,7 +30,6 @@ from zun.tests.unit.db.utils import FakeEtcdResult
|
|||||||
class DbImageTestCase(base.DbTestCase):
|
class DbImageTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbImageTestCase, self).setUp()
|
super(DbImageTestCase, self).setUp()
|
||||||
|
|
||||||
def test_pull_image(self):
|
def test_pull_image(self):
|
||||||
@ -154,7 +153,7 @@ class DbImageTestCase(base.DbTestCase):
|
|||||||
class EtcdDbImageTestCase(base.DbTestCase):
|
class EtcdDbImageTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbImageTestCase, self).setUp()
|
super(EtcdDbImageTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
|
@ -10,7 +10,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 oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
|
|
||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
@ -25,7 +24,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbInventoryTestCase(base.DbTestCase):
|
class DbInventoryTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbInventoryTestCase, self).setUp()
|
super(DbInventoryTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_inventory(self):
|
def test_create_inventory(self):
|
||||||
|
@ -33,7 +33,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbPciDeviceTestCase(base.DbTestCase, base.ModelsObjectComparatorMixin):
|
class DbPciDeviceTestCase(base.DbTestCase, base.ModelsObjectComparatorMixin):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbPciDeviceTestCase, self).setUp()
|
super(DbPciDeviceTestCase, self).setUp()
|
||||||
self.admin_context = context.get_admin_context()
|
self.admin_context = context.get_admin_context()
|
||||||
self._compute_node = None
|
self._compute_node = None
|
||||||
@ -222,7 +221,7 @@ fake_values = {'id': 1,
|
|||||||
class EtcdDbPciDeviceTestCase(base.DbTestCase):
|
class EtcdDbPciDeviceTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbPciDeviceTestCase, self).setUp()
|
super(EtcdDbPciDeviceTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
|
@ -23,6 +23,7 @@ import six
|
|||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcd_api
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
||||||
@ -34,7 +35,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbResourceClassTestCase(base.DbTestCase):
|
class DbResourceClassTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbResourceClassTestCase, self).setUp()
|
super(DbResourceClassTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_resource_class(self):
|
def test_create_resource_class(self):
|
||||||
@ -128,7 +128,7 @@ class DbResourceClassTestCase(base.DbTestCase):
|
|||||||
class EtcdDbResourceClassTestCase(base.DbTestCase):
|
class EtcdDbResourceClassTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbResourceClassTestCase, self).setUp()
|
super(EtcdDbResourceClassTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@ -150,7 +150,10 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_resource_class_by_uuid(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_resource_class_by_uuid(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
resource_class = utils.create_test_resource_class(
|
resource_class = utils.create_test_resource_class(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -162,7 +165,10 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_resource_class_by_name(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_resource_class_by_name(self, mock_db_inst,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_db_inst.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
rcs = utils.create_test_resource_class(context=self.context)
|
rcs = utils.create_test_resource_class(context=self.context)
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
|
mock_read.side_effect = lambda *args: FakeEtcdMultipleResult(
|
||||||
@ -179,9 +185,11 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_resource_classes(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_resource_classes(self, mock_ins, mock_write, mock_read):
|
||||||
names = []
|
names = []
|
||||||
resource_classes = []
|
resource_classes = []
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
res_class = utils.create_test_resource_class(
|
res_class = utils.create_test_resource_class(
|
||||||
@ -196,9 +204,12 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_resource_classes_sorted(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_resource_classes_sorted(self, mock_ins,
|
||||||
|
mock_write, mock_read):
|
||||||
names = []
|
names = []
|
||||||
resource_classes = []
|
resource_classes = []
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(1, 6):
|
for i in range(1, 6):
|
||||||
res_class = utils.create_test_resource_class(
|
res_class = utils.create_test_resource_class(
|
||||||
@ -214,8 +225,10 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_resource_class(self, mock_delete,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_resource_class(self, mock_ins, mock_delete,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
resource_class = utils.create_test_resource_class(
|
resource_class = utils.create_test_resource_class(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -236,8 +249,10 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_resource_class(self, mock_update,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_resource_class(self, mock_ins, mock_update,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
resource_class = utils.create_test_resource_class(
|
resource_class = utils.create_test_resource_class(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -263,7 +278,9 @@ class EtcdDbResourceClassTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_update_resource_class_uuid(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_resource_class_uuid(self, mock_ins, mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
resource_class = utils.create_test_resource_class(
|
resource_class = utils.create_test_resource_class(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
|
|
||||||
"""Tests for manipulating resource providers via the DB API"""
|
"""Tests for manipulating resource providers via the DB API"""
|
||||||
|
|
||||||
from oslo_config import cfg
|
|
||||||
from oslo_utils import uuidutils
|
from oslo_utils import uuidutils
|
||||||
import six
|
import six
|
||||||
|
|
||||||
@ -28,7 +27,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbResourceProviderTestCase(base.DbTestCase):
|
class DbResourceProviderTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbResourceProviderTestCase, self).setUp()
|
super(DbResourceProviderTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_resource_provider(self):
|
def test_create_resource_provider(self):
|
||||||
|
@ -22,6 +22,7 @@ import six
|
|||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
import zun.conf
|
import zun.conf
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcd_api
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
||||||
@ -33,7 +34,6 @@ CONF = zun.conf.CONF
|
|||||||
class DbVolumeMappingTestCase(base.DbTestCase):
|
class DbVolumeMappingTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbVolumeMappingTestCase, self).setUp()
|
super(DbVolumeMappingTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_volume_mapping(self):
|
def test_create_volume_mapping(self):
|
||||||
@ -161,7 +161,7 @@ class DbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbVolumeMappingTestCase, self).setUp()
|
super(EtcdDbVolumeMappingTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@ -183,7 +183,9 @@ class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_volume_mapping_by_uuid(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_volume_mapping_by_uuid(self, mock_ins, mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
volume_mapping = utils.create_test_volume_mapping(
|
volume_mapping = utils.create_test_volume_mapping(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -204,9 +206,11 @@ class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_volume_mappings(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_volume_mappings(self, mock_ins, mock_write, mock_read):
|
||||||
uuids = []
|
uuids = []
|
||||||
volume_mappings = []
|
volume_mappings = []
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(0, 6):
|
for i in range(0, 6):
|
||||||
volume_mapping = utils.create_test_volume_mapping(
|
volume_mapping = utils.create_test_volume_mapping(
|
||||||
@ -223,9 +227,12 @@ class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_volume_mappings_sorted(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_volume_mappings_sorted(self, mock_ins,
|
||||||
|
mock_write, mock_read):
|
||||||
uuids = []
|
uuids = []
|
||||||
volume_mappings = []
|
volume_mappings = []
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
for i in range(0, 6):
|
for i in range(0, 6):
|
||||||
volume_mapping = utils.create_test_volume_mapping(
|
volume_mapping = utils.create_test_volume_mapping(
|
||||||
@ -246,7 +253,10 @@ class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_volume_mappings_with_filters(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_volume_mappings_with_filters(self, mock_ins,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
|
|
||||||
volume_mapping1 = utils.create_test_volume_mapping(
|
volume_mapping1 = utils.create_test_volume_mapping(
|
||||||
@ -276,8 +286,10 @@ class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_volume_mapping_by_uuid(self, mock_delete,
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_volume_mapping_by_uuid(self, mock_ins, mock_delete,
|
||||||
mock_write, mock_read):
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
volume_mapping = utils.create_test_volume_mapping(
|
volume_mapping = utils.create_test_volume_mapping(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
@ -297,7 +309,10 @@ class EtcdDbVolumeMappingTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_volume_mapping(self, mock_update, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_volume_mapping(self, mock_ins, mock_update,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
volume_mapping = utils.create_test_volume_mapping(
|
volume_mapping = utils.create_test_volume_mapping(
|
||||||
context=self.context)
|
context=self.context)
|
||||||
|
@ -21,6 +21,7 @@ from oslo_serialization import jsonutils as json
|
|||||||
|
|
||||||
from zun.common import exception
|
from zun.common import exception
|
||||||
from zun.db import api as dbapi
|
from zun.db import api as dbapi
|
||||||
|
from zun.db.etcd import api as etcd_api
|
||||||
from zun.tests.unit.db import base
|
from zun.tests.unit.db import base
|
||||||
from zun.tests.unit.db import utils
|
from zun.tests.unit.db import utils
|
||||||
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
from zun.tests.unit.db.utils import FakeEtcdMultipleResult
|
||||||
@ -30,7 +31,6 @@ from zun.tests.unit.db.utils import FakeEtcdResult
|
|||||||
class DbZunServiceTestCase(base.DbTestCase):
|
class DbZunServiceTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'sql')
|
|
||||||
super(DbZunServiceTestCase, self).setUp()
|
super(DbZunServiceTestCase, self).setUp()
|
||||||
|
|
||||||
def test_create_zun_service(self):
|
def test_create_zun_service(self):
|
||||||
@ -133,7 +133,7 @@ class DbZunServiceTestCase(base.DbTestCase):
|
|||||||
class EtcdDbZunServiceTestCase(base.DbTestCase):
|
class EtcdDbZunServiceTestCase(base.DbTestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
cfg.CONF.set_override('db_type', 'etcd')
|
cfg.CONF.set_override('backend', 'etcd', 'database')
|
||||||
super(EtcdDbZunServiceTestCase, self).setUp()
|
super(EtcdDbZunServiceTestCase, self).setUp()
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@ -153,7 +153,9 @@ class EtcdDbZunServiceTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_get_zun_service(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_get_zun_service(self, mock_ins, mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
zun_service = utils.create_test_zun_service()
|
zun_service = utils.create_test_zun_service()
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -174,7 +176,9 @@ class EtcdDbZunServiceTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_zun_services(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_zun_services(self, mock_ins, mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
service_1 = utils.create_test_zun_service(host='host_1')
|
service_1 = utils.create_test_zun_service(host='host_1')
|
||||||
service_2 = utils.create_test_zun_service(host='host_2')
|
service_2 = utils.create_test_zun_service(host='host_2')
|
||||||
@ -187,7 +191,10 @@ class EtcdDbZunServiceTestCase(base.DbTestCase):
|
|||||||
|
|
||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
def test_list_zun_services_by_binary(self, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_list_zun_services_by_binary(self, mock_ins,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
service_1 = utils.create_test_zun_service(
|
service_1 = utils.create_test_zun_service(
|
||||||
host='host_1', binary='binary_1')
|
host='host_1', binary='binary_1')
|
||||||
@ -208,7 +215,10 @@ class EtcdDbZunServiceTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_zun_service(self, mock_delete, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_zun_service(self, mock_ins, mock_delete,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
zun_service = utils.create_test_zun_service()
|
zun_service = utils.create_test_zun_service()
|
||||||
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
mock_read.side_effect = lambda *args: FakeEtcdResult(
|
||||||
@ -219,7 +229,9 @@ class EtcdDbZunServiceTestCase(base.DbTestCase):
|
|||||||
'/zun_services/%s' % zun_service.host + '_' + zun_service.binary)
|
'/zun_services/%s' % zun_service.host + '_' + zun_service.binary)
|
||||||
|
|
||||||
@mock.patch.object(etcd_client, 'delete')
|
@mock.patch.object(etcd_client, 'delete')
|
||||||
def test_destroy_zun_service_not_exist(self, mock_delete):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_destroy_zun_service_not_exist(self, mock_ins, mock_delete):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_delete.side_effect = etcd.EtcdKeyNotFound
|
mock_delete.side_effect = etcd.EtcdKeyNotFound
|
||||||
self.assertRaises(exception.ZunServiceNotFound,
|
self.assertRaises(exception.ZunServiceNotFound,
|
||||||
dbapi.destroy_zun_service,
|
dbapi.destroy_zun_service,
|
||||||
@ -228,7 +240,10 @@ class EtcdDbZunServiceTestCase(base.DbTestCase):
|
|||||||
@mock.patch.object(etcd_client, 'read')
|
@mock.patch.object(etcd_client, 'read')
|
||||||
@mock.patch.object(etcd_client, 'write')
|
@mock.patch.object(etcd_client, 'write')
|
||||||
@mock.patch.object(etcd_client, 'update')
|
@mock.patch.object(etcd_client, 'update')
|
||||||
def test_update_zun_service(self, mock_update, mock_write, mock_read):
|
@mock.patch.object(dbapi, "_get_dbdriver_instance")
|
||||||
|
def test_update_zun_service(self, mock_ins, mock_update,
|
||||||
|
mock_write, mock_read):
|
||||||
|
mock_ins.return_value = etcd_api.get_backend()
|
||||||
mock_read.side_effect = etcd.EtcdKeyNotFound
|
mock_read.side_effect = etcd.EtcdKeyNotFound
|
||||||
service = utils.create_test_zun_service()
|
service = utils.create_test_zun_service()
|
||||||
new_host = 'new-host'
|
new_host = 'new-host'
|
||||||
|
@ -17,6 +17,7 @@ from oslo_serialization import jsonutils as json
|
|||||||
|
|
||||||
from zun.common import name_generator
|
from zun.common import name_generator
|
||||||
from zun.db import api as db_api
|
from zun.db import api as db_api
|
||||||
|
from zun.db.etcd import api as etcd_api
|
||||||
|
|
||||||
CONF = cfg.CONF
|
CONF = cfg.CONF
|
||||||
|
|
||||||
@ -93,6 +94,14 @@ def get_test_container(**kwargs):
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def _get_dbapi():
|
||||||
|
if CONF.database.backend == 'sqlalchemy':
|
||||||
|
dbapi = db_api._get_dbdriver_instance()
|
||||||
|
else:
|
||||||
|
dbapi = etcd_api.get_backend()
|
||||||
|
return dbapi
|
||||||
|
|
||||||
|
|
||||||
def create_test_container(**kwargs):
|
def create_test_container(**kwargs):
|
||||||
"""Create test container entry in DB and return Container DB object.
|
"""Create test container entry in DB and return Container DB object.
|
||||||
|
|
||||||
@ -102,9 +111,9 @@ def create_test_container(**kwargs):
|
|||||||
"""
|
"""
|
||||||
container = get_test_container(**kwargs)
|
container = get_test_container(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del container['id']
|
del container['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_container(kwargs['context'], container)
|
return dbapi.create_container(kwargs['context'], container)
|
||||||
|
|
||||||
|
|
||||||
@ -130,9 +139,9 @@ def get_test_volume_mapping(**kwargs):
|
|||||||
def create_test_volume_mapping(**kwargs):
|
def create_test_volume_mapping(**kwargs):
|
||||||
volume_mapping = get_test_volume_mapping(**kwargs)
|
volume_mapping = get_test_volume_mapping(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del volume_mapping['id']
|
del volume_mapping['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_volume_mapping(kwargs['context'], volume_mapping)
|
return dbapi.create_volume_mapping(kwargs['context'], volume_mapping)
|
||||||
|
|
||||||
|
|
||||||
@ -164,7 +173,7 @@ def create_test_image(**kwargs):
|
|||||||
del image['id']
|
del image['id']
|
||||||
if 'repo' not in kwargs:
|
if 'repo' not in kwargs:
|
||||||
image['repo'] = _generate_repo_for_image()
|
image['repo'] = _generate_repo_for_image()
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.pull_image(kwargs['context'], image)
|
return dbapi.pull_image(kwargs['context'], image)
|
||||||
|
|
||||||
|
|
||||||
@ -194,9 +203,9 @@ def get_test_zun_service(**kwargs):
|
|||||||
def create_test_zun_service(**kwargs):
|
def create_test_zun_service(**kwargs):
|
||||||
zun_service = get_test_zun_service(**kwargs)
|
zun_service = get_test_zun_service(**kwargs)
|
||||||
# Let DB generate ID if it isn't specifiled explicitly
|
# Let DB generate ID if it isn't specifiled explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del zun_service['id']
|
del zun_service['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_zun_service(zun_service)
|
return dbapi.create_zun_service(zun_service)
|
||||||
|
|
||||||
|
|
||||||
@ -218,9 +227,9 @@ def get_test_resource_provider(**kwargs):
|
|||||||
def create_test_resource_provider(**kwargs):
|
def create_test_resource_provider(**kwargs):
|
||||||
provider = get_test_resource_provider(**kwargs)
|
provider = get_test_resource_provider(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del provider['id']
|
del provider['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_resource_provider(kwargs['context'], provider)
|
return dbapi.create_resource_provider(kwargs['context'], provider)
|
||||||
|
|
||||||
|
|
||||||
@ -237,9 +246,9 @@ def get_test_resource_class(**kwargs):
|
|||||||
def create_test_resource_class(**kwargs):
|
def create_test_resource_class(**kwargs):
|
||||||
resource = get_test_resource_class(**kwargs)
|
resource = get_test_resource_class(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del resource['id']
|
del resource['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_resource_class(kwargs['context'], resource)
|
return dbapi.create_resource_class(kwargs['context'], resource)
|
||||||
|
|
||||||
|
|
||||||
@ -264,10 +273,10 @@ def get_test_inventory(**kwargs):
|
|||||||
def create_test_inventory(**kwargs):
|
def create_test_inventory(**kwargs):
|
||||||
inventory = get_test_inventory(**kwargs)
|
inventory = get_test_inventory(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del inventory['id']
|
del inventory['id']
|
||||||
provider_id = inventory.pop('resource_provider_id')
|
provider_id = inventory.pop('resource_provider_id')
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_inventory(kwargs['context'], provider_id, inventory)
|
return dbapi.create_inventory(kwargs['context'], provider_id, inventory)
|
||||||
|
|
||||||
|
|
||||||
@ -289,9 +298,9 @@ def get_test_allocation(**kwargs):
|
|||||||
def create_test_allocation(**kwargs):
|
def create_test_allocation(**kwargs):
|
||||||
allocation = get_test_allocation(**kwargs)
|
allocation = get_test_allocation(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if 'id' not in kwargs:
|
||||||
del allocation['id']
|
del allocation['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_allocation(kwargs['context'], allocation)
|
return dbapi.create_allocation(kwargs['context'], allocation)
|
||||||
|
|
||||||
|
|
||||||
@ -340,7 +349,7 @@ def get_test_compute_node(**kwargs):
|
|||||||
|
|
||||||
def create_test_compute_node(**kwargs):
|
def create_test_compute_node(**kwargs):
|
||||||
compute_host = get_test_compute_node(**kwargs)
|
compute_host = get_test_compute_node(**kwargs)
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_compute_node(kwargs['context'], compute_host)
|
return dbapi.create_compute_node(kwargs['context'], compute_host)
|
||||||
|
|
||||||
|
|
||||||
@ -397,9 +406,9 @@ def create_test_capsule(**kwargs):
|
|||||||
"""
|
"""
|
||||||
capsule = get_test_capsule(**kwargs)
|
capsule = get_test_capsule(**kwargs)
|
||||||
# Let DB generate ID if it isn't specified explicitly
|
# Let DB generate ID if it isn't specified explicitly
|
||||||
if CONF.db_type == 'sql' and 'id' not in kwargs:
|
if CONF.database.backend == 'sqlalchemy' and 'id' not in kwargs:
|
||||||
del capsule['id']
|
del capsule['id']
|
||||||
dbapi = db_api._get_dbdriver_instance()
|
dbapi = _get_dbapi()
|
||||||
return dbapi.create_capsule(kwargs['context'], capsule)
|
return dbapi.create_capsule(kwargs['context'], capsule)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user