DB layer suppress Forbidden to NotFound error

DB layer for metadef covers up a Forbidden error with NotFound in case
trying to perform any operation on namespace which user does not own.

This patch has removed this cover up so that end user will get
appropriate error message.

Change-Id: I9f05961c0b56efbede321271259848cfc96a98ee
This commit is contained in:
Abhishek Kekane 2021-07-12 08:37:05 +00:00
parent cdd1f37263
commit ac45f4d44a
3 changed files with 9 additions and 13 deletions

View File

@ -464,12 +464,8 @@ class MetadefNamespaceRepo(object):
)
def get(self, namespace):
try:
db_api_namespace = self.db_api.metadef_namespace_get(
self.context, namespace)
except (exception.NotFound, exception.Forbidden):
msg = _('Could not find namespace %s') % namespace
raise exception.NotFound(msg)
db_api_namespace = self.db_api.metadef_namespace_get(
self.context, namespace)
return self._format_namespace_from_db(db_api_namespace)
def list(self, marker=None, limit=None, sort_key='created_at',

View File

@ -248,7 +248,7 @@ class TestMetadefRepo(test_utils.BaseTestCase):
self.assertIn(fake_namespace, encodeutils.exception_to_unicode(exc))
def test_get_namespace_forbidden(self):
self.assertRaises(exception.NotFound,
self.assertRaises(exception.MetadefForbidden,
self.namespace_repo.get,
NAMESPACE3)

View File

@ -451,7 +451,7 @@ class TestMetadefsControllers(base.IsolatedUnitTest):
def test_namespace_show_non_visible(self):
request = unit_test_utils.get_fake_request()
self.assertRaises(webob.exc.HTTPNotFound,
self.assertRaises(webob.exc.HTTPForbidden,
self.namespace_controller.show, request, NAMESPACE2)
def test_namespace_delete(self):
@ -500,7 +500,7 @@ class TestMetadefsControllers(base.IsolatedUnitTest):
def test_namespace_delete_non_visible(self):
request = unit_test_utils.get_fake_request()
self.assertRaises(webob.exc.HTTPNotFound,
self.assertRaises(webob.exc.HTTPForbidden,
self.namespace_controller.delete, request,
NAMESPACE2)
self.assertNotificationsLog([])
@ -843,7 +843,7 @@ class TestMetadefsControllers(base.IsolatedUnitTest):
namespace = namespaces.Namespace()
namespace.namespace = NAMESPACE2
self.assertRaises(webob.exc.HTTPNotFound,
self.assertRaises(webob.exc.HTTPForbidden,
self.namespace_controller.update, request, namespace,
NAMESPACE2)
self.assertNotificationsLog([])
@ -936,7 +936,7 @@ class TestMetadefsControllers(base.IsolatedUnitTest):
def test_property_show_non_existing_resource_type(self):
request = unit_test_utils.get_fake_request()
self.assertRaises(webob.exc.HTTPNotFound,
self.assertRaises(webob.exc.HTTPForbidden,
self.property_controller.show, request, NAMESPACE2,
PROPERTY1, filters={'resource_type': 'test'})
@ -1687,7 +1687,7 @@ class TestMetadefsControllers(base.IsolatedUnitTest):
def test_resource_type_show_non_visible(self):
request = unit_test_utils.get_fake_request()
self.assertRaises(webob.exc.HTTPNotFound, self.rt_controller.show,
self.assertRaises(webob.exc.HTTPForbidden, self.rt_controller.show,
request, NAMESPACE2)
def test_resource_type_show_non_visible_admin(self):
@ -1754,7 +1754,7 @@ class TestMetadefsControllers(base.IsolatedUnitTest):
def test_resource_type_association_delete_non_visible(self):
request = unit_test_utils.get_fake_request(tenant=TENANT3)
self.assertRaises(webob.exc.HTTPNotFound, self.rt_controller.delete,
self.assertRaises(webob.exc.HTTPForbidden, self.rt_controller.delete,
request, NAMESPACE1, RESOURCE_TYPE1)
self.assertNotificationsLog([])