Correct exception raised in few db APIs

This patch corrects wrong exception raised in below
db APIs:
1. get_rcs_by_bay_uuid
2. get_services_by_bay_uuid

Co-Authored-By: Vilobh Meshram <vilobhmm@yahoo-inc.com>

Closes-bug: #1475556
Change-Id: I7c3307747f6ae905a9eecc2e755e5c7d6ddde91d
This commit is contained in:
Vilobh Meshram 2015-08-27 12:06:26 -07:00
parent 8719df3b99
commit a75b8f0f03
5 changed files with 31 additions and 9 deletions

View File

@ -781,7 +781,9 @@ class Connection(api.Connection):
except NoResultFound:
raise exception.ServiceNotFound(service=service_uuid)
def get_services_by_bay_uuid(self, bay_uuid):
def get_services_by_bay_uuid(self, context, bay_uuid):
# First verify whether the Bay exists
self.get_bay_by_uuid(context, bay_uuid)
query = model_query(models.Service).filter_by(bay_uuid=bay_uuid)
try:
return query.all()
@ -886,7 +888,9 @@ class Connection(api.Connection):
except NoResultFound:
raise exception.ReplicationControllerNotFound(rc=rc_uuid)
def get_rcs_by_bay_uuid(self, bay_uuid):
def get_rcs_by_bay_uuid(self, context, bay_uuid):
# First verify whether the Bay exists
self.get_bay_by_uuid(context, bay_uuid)
query = model_query(models.ReplicationController).filter_by(
bay_uuid=bay_uuid)
try:

View File

@ -107,7 +107,8 @@ class Service(base.MagnumPersistentObject, base.MagnumObject,
:param context: Security context
:returns: a list of class:`Service` object.
"""
db_services = cls.dbapi.get_services_by_bay_uuid(bay_uuid)
db_services = cls.dbapi.get_services_by_bay_uuid(context,
bay_uuid)
return Service._from_db_object_list(db_services, cls, context)
@base.remotable_classmethod

View File

@ -106,12 +106,15 @@ class DbRCTestCase(base.DbTestCase):
self.assertEqual(0, len(rc))
def test_get_rcs_by_bay_uuid(self):
rc = self.dbapi.get_rcs_by_bay_uuid(self.bay.uuid)
rc = self.dbapi.get_rcs_by_bay_uuid(self.context,
self.bay.uuid)
self.assertEqual(self.rc.id, rc[0].id)
def test_get_rcs_by_bay_uuid_that_does_not_exist(self):
res = self.dbapi.get_rcs_by_bay_uuid(magnum_utils.generate_uuid())
self.assertEqual([], res)
self.assertRaises(exception.BayNotFound,
self.dbapi.get_rcs_by_bay_uuid,
self.context,
magnum_utils.generate_uuid())
def test_destroy_rc(self):
self.dbapi.destroy_rc(self.rc.id)

View File

@ -148,12 +148,15 @@ class DbServiceTestCase(base.DbTestCase):
self.assertEqual(0, len(res))
def test_get_services_by_bay_uuid(self):
res = self.dbapi.get_services_by_bay_uuid(self.bay.uuid)
res = self.dbapi.get_services_by_bay_uuid(self.context,
self.bay.uuid)
self.assertEqual(self.service.id, res[0].id)
def test_get_services_by_bay_uuid_that_does_not_exist(self):
res = self.dbapi.get_services_by_bay_uuid(magnum_utils.generate_uuid())
self.assertEqual([], res)
self.assertRaises(exception.BayNotFound,
self.dbapi.get_services_by_bay_uuid,
self.context,
magnum_utils.generate_uuid())
def test_destroy_service(self):
self.dbapi.destroy_service(self.service.id)

View File

@ -55,6 +55,17 @@ class TestServiceObject(base.DbTestCase):
mock_get_service.assert_called_once_with(self.context, name)
self.assertEqual(self.context, service._context)
def test_list_by_bay_uuid(self):
bay_uuid = self.fake_service['bay_uuid']
with mock.patch.object(self.dbapi, 'get_services_by_bay_uuid',
autospec=True) as mock_get_service:
mock_get_service.return_value = [self.fake_service]
services = objects.Service.list_by_bay_uuid(self.context,
bay_uuid)
self.assertThat(services, HasLength(1))
mock_get_service.assert_called_once_with(self.context,
bay_uuid)
def test_list(self):
with mock.patch.object(self.dbapi, 'get_service_list',
autospec=True) as mock_get_list: