Enable multi tenant for get_xxx_by_id

The updated API include the following:
1) get_bay_by_id
2) get_baymodel_by_id
3) get_node_by_id
4) get_container_by_id

Implements part of bp multi-tenant

Change-Id: I7d2f8b7ea361b38d6f0110772c10f93037c7aefb
This commit is contained in:
Jay Lau (Guangya Liu) 2015-01-30 04:13:14 -05:00
parent 003d5a199b
commit c182dadb17
14 changed files with 52 additions and 33 deletions

View File

@ -83,9 +83,10 @@ class Connection(object):
"""
@abc.abstractmethod
def get_bay_by_id(self, bay_id):
def get_bay_by_id(self, ctxt, bay_id):
"""Return a bay.
:param ctxt: The security context
:param bay_id: The id of a bay.
:returns: A bay.
"""
@ -157,9 +158,10 @@ class Connection(object):
"""
@abc.abstractmethod
def get_baymodel_by_id(self, baymodel_id):
def get_baymodel_by_id(self, ctxt, baymodel_id):
"""Return a baymodel.
:param ctxt: The security context
:param baymodel_id: The id of a baymodel.
:returns: A baymodel.
"""
@ -232,9 +234,10 @@ class Connection(object):
"""
@abc.abstractmethod
def get_container_by_id(self, container_id):
def get_container_by_id(self, ctxt, container_id):
"""Return a container.
:param ctxt: The security context
:param container_id: The id of a container.
:returns: A container.
"""
@ -305,9 +308,10 @@ class Connection(object):
"""
@abc.abstractmethod
def get_node_by_id(self, node_id):
def get_node_by_id(self, ctxt, node_id):
"""Return a node.
:param ctxt: The security context
:param node_id: The id of a node.
:returns: A node.
"""

View File

@ -173,8 +173,10 @@ class Connection(api.Connection):
raise exception.BayAlreadyExists(uuid=values['uuid'])
return bay
def get_bay_by_id(self, bay_id):
query = model_query(models.Bay).filter_by(id=bay_id)
def get_bay_by_id(self, ctxt, bay_id):
query = model_query(models.Bay)
query = self._add_tenant_filters(ctxt, query)
query = query.filter_by(id=bay_id)
try:
return query.one()
except NoResultFound:
@ -308,8 +310,10 @@ class Connection(api.Connection):
raise exception.BayModelAlreadyExists(uuid=values['uuid'])
return baymodel
def get_baymodel_by_id(self, baymodel_id):
query = model_query(models.BayModel).filter_by(id=baymodel_id)
def get_baymodel_by_id(self, ctxt, baymodel_id):
query = model_query(models.BayModel)
query = self._add_tenant_filters(ctxt, query)
query = query.filter_by(id=baymodel_id)
try:
return query.one()
except NoResultFound:
@ -418,8 +422,10 @@ class Connection(api.Connection):
raise exception.ContainerAlreadyExists(uuid=values['uuid'])
return container
def get_container_by_id(self, container_id):
query = model_query(models.Container).filter_by(id=container_id)
def get_container_by_id(self, ctxt, container_id):
query = model_query(models.Container)
query = self._add_tenant_filters(ctxt, query)
query = query.filter_by(id=container_id)
try:
return query.one()
except NoResultFound:
@ -526,8 +532,10 @@ class Connection(api.Connection):
raise exception.NodeAlreadyExists(uuid=values['uuid'])
return node
def get_node_by_id(self, node_id):
query = model_query(models.Node).filter_by(id=node_id)
def get_node_by_id(self, ctxt, node_id):
query = model_query(models.Node)
query = self._add_tenant_filters(ctxt, query)
query = query.filter_by(id=node_id)
try:
return query.one()
except NoResultFound:

View File

@ -74,7 +74,7 @@ class Bay(base.MagnumObject):
:param bay_id: the id of a bay.
:returns: a :class:`Bay` object.
"""
db_bay = cls.dbapi.get_bay_by_id(bay_id)
db_bay = cls.dbapi.get_bay_by_id(context, bay_id)
bay = Bay._from_db_object(cls(context), db_bay)
return bay

View File

@ -76,7 +76,7 @@ class BayModel(base.MagnumObject):
:param baymodel_id: the id of a baymodel.
:returns: a :class:`BayModel` object.
"""
db_baymodel = cls.dbapi.get_baymodel_by_id(baymodel_id)
db_baymodel = cls.dbapi.get_baymodel_by_id(context, baymodel_id)
baymodel = BayModel._from_db_object(cls(context), db_baymodel)
return baymodel

View File

@ -71,7 +71,7 @@ class Container(base.MagnumObject):
:param container_id: the id of a container.
:returns: a :class:`Container` object.
"""
db_container = cls.dbapi.get_container_by_id(container_id)
db_container = cls.dbapi.get_container_by_id(context, container_id)
container = Container._from_db_object(cls(context), db_container)
return container

View File

@ -71,7 +71,7 @@ class Node(base.MagnumObject):
:param node_id: the id of a node.
:returns: a :class:`Node` object.
"""
db_node = cls.dbapi.get_node_by_id(node_id)
db_node = cls.dbapi.get_node_by_id(context, node_id)
node = Node._from_db_object(cls(context), db_node)
return node

View File

@ -38,7 +38,7 @@ class DbBayTestCase(base.DbTestCase):
def test_get_bay_by_id(self):
bay = utils.create_test_bay()
res = self.dbapi.get_bay_by_id(bay.id)
res = self.dbapi.get_bay_by_id(self.context, bay.id)
self.assertEqual(bay.id, res.id)
self.assertEqual(bay.uuid, res.uuid)
@ -50,7 +50,8 @@ class DbBayTestCase(base.DbTestCase):
def test_get_bay_that_does_not_exist(self):
self.assertRaises(exception.BayNotFound,
self.dbapi.get_bay_by_id, 999)
self.dbapi.get_bay_by_id,
self.context, 999)
self.assertRaises(exception.BayNotFound,
self.dbapi.get_bay_by_uuid,
self.context,
@ -182,10 +183,12 @@ class DbBayTestCase(base.DbTestCase):
def test_destroy_bay(self):
bay = utils.create_test_bay()
self.assertIsNotNone(self.dbapi.get_bay_by_id(bay.id))
self.assertIsNotNone(self.dbapi.get_bay_by_id(self.context,
bay.id))
self.dbapi.destroy_bay(bay.id)
self.assertRaises(exception.BayNotFound,
self.dbapi.get_bay_by_id, bay.id)
self.dbapi.get_bay_by_id,
self.context, bay.id)
def test_destroy_bay_by_uuid(self):
bay = utils.create_test_bay()

View File

@ -89,7 +89,7 @@ class DbBaymodelTestCase(base.DbTestCase):
def test_get_baymodel_by_id(self):
bm = self._create_test_baymodel()
baymodel = self.dbapi.get_baymodel_by_id(bm['id'])
baymodel = self.dbapi.get_baymodel_by_id(self.context, bm['id'])
self.assertEqual(bm['uuid'], baymodel.uuid)
def test_get_baymodel_by_uuid(self):
@ -99,7 +99,7 @@ class DbBaymodelTestCase(base.DbTestCase):
def test_get_baymodel_that_does_not_exist(self):
self.assertRaises(exception.BayModelNotFound,
self.dbapi.get_baymodel_by_id, 666)
self.dbapi.get_baymodel_by_id, self.context, 666)
def test_update_baymodel(self):
bm = self._create_test_baymodel()
@ -120,7 +120,8 @@ class DbBaymodelTestCase(base.DbTestCase):
bm = self._create_test_baymodel()
self.dbapi.destroy_baymodel(bm['id'])
self.assertRaises(exception.BayModelNotFound,
self.dbapi.get_baymodel_by_id, bm['id'])
self.dbapi.get_baymodel_by_id,
self.context, bm['id'])
def test_destroy_baymodel_by_uuid(self):
uuid = magnum_utils.generate_uuid()

View File

@ -35,7 +35,7 @@ class DbContainerTestCase(base.DbTestCase):
def test_get_container_by_id(self):
container = utils.create_test_container()
res = self.dbapi.get_container_by_id(container.id)
res = self.dbapi.get_container_by_id(self.context, container.id)
self.assertEqual(container.id, res.id)
self.assertEqual(container.uuid, res.uuid)
@ -48,7 +48,7 @@ class DbContainerTestCase(base.DbTestCase):
def test_get_container_that_does_not_exist(self):
self.assertRaises(exception.ContainerNotFound,
self.dbapi.get_container_by_id, 99)
self.dbapi.get_container_by_id, self.context, 99)
self.assertRaises(exception.ContainerNotFound,
self.dbapi.get_container_by_uuid,
self.context,
@ -136,7 +136,8 @@ class DbContainerTestCase(base.DbTestCase):
container = utils.create_test_container()
self.dbapi.destroy_container(container.id)
self.assertRaises(exception.ContainerNotFound,
self.dbapi.get_container_by_id, container.id)
self.dbapi.get_container_by_id,
self.context, container.id)
def test_destroy_container_by_uuid(self):
container = utils.create_test_container()

View File

@ -44,7 +44,7 @@ class DbNodeTestCase(base.DbTestCase):
def test_get_node_by_id(self):
node = utils.create_test_node()
res = self.dbapi.get_node_by_id(node.id)
res = self.dbapi.get_node_by_id(self.context, node.id)
self.assertEqual(node.id, res.id)
self.assertEqual(node.uuid, res.uuid)
@ -56,7 +56,7 @@ class DbNodeTestCase(base.DbTestCase):
def test_get_node_that_does_not_exist(self):
self.assertRaises(exception.NodeNotFound,
self.dbapi.get_node_by_id, 99)
self.dbapi.get_node_by_id, self.context, 99)
self.assertRaises(exception.NodeNotFound,
self.dbapi.get_node_by_uuid,
self.context,
@ -149,7 +149,7 @@ class DbNodeTestCase(base.DbTestCase):
node = utils.create_test_node()
self.dbapi.destroy_node(node.id)
self.assertRaises(exception.NodeNotFound,
self.dbapi.get_node_by_id, node.id)
self.dbapi.get_node_by_id, self.context, node.id)
def test_destroy_node_by_uuid(self):
node = utils.create_test_node()

View File

@ -35,7 +35,7 @@ class TestBayObject(base.DbTestCase):
autospec=True) as mock_get_bay:
mock_get_bay.return_value = self.fake_bay
bay = objects.Bay.get(self.context, bay_id)
mock_get_bay.assert_called_once_with(bay_id)
mock_get_bay.assert_called_once_with(self.context, bay_id)
self.assertEqual(self.context, bay._context)
def test_get_by_uuid(self):

View File

@ -35,7 +35,8 @@ class TestBayModelObject(base.DbTestCase):
autospec=True) as mock_get_baymodel:
mock_get_baymodel.return_value = self.fake_baymodel
baymodel = objects.BayModel.get(self.context, baymodel_id)
mock_get_baymodel.assert_called_once_with(baymodel_id)
mock_get_baymodel.assert_called_once_with(self.context,
baymodel_id)
self.assertEqual(self.context, baymodel._context)
def test_get_by_uuid(self):

View File

@ -35,7 +35,8 @@ class TestContainerObject(base.DbTestCase):
autospec=True) as mock_get_container:
mock_get_container.return_value = self.fake_container
container = objects.Container.get(self.context, container_id)
mock_get_container.assert_called_once_with(container_id)
mock_get_container.assert_called_once_with(self.context,
container_id)
self.assertEqual(self.context, container._context)
def test_get_by_uuid(self):

View File

@ -35,7 +35,7 @@ class TestNodeObject(base.DbTestCase):
autospec=True) as mock_get_node:
mock_get_node.return_value = self.fake_node
node = objects.Node.get(self.context, node_id)
mock_get_node.assert_called_once_with(node_id)
mock_get_node.assert_called_once_with(self.context, node_id)
self.assertEqual(self.context, node._context)
def test_get_by_uuid(self):