Merge "Fixes internal server error for add/remove tenant flavor access request"

This commit is contained in:
Jenkins 2014-07-01 06:50:40 +00:00 committed by Gerrit Code Review
commit d0ebe10d2d
2 changed files with 32 additions and 2 deletions

View File

@ -165,7 +165,10 @@ class FlavorActionController(wsgi.Controller):
self._check_body(body)
vals = body['addTenantAccess']
tenant = vals['tenant']
tenant = vals.get('tenant')
if not tenant:
msg = _("Missing tenant parameter")
raise webob.exc.HTTPBadRequest(explanation=msg)
flavor = objects.Flavor(context=context, flavorid=id)
try:
@ -186,7 +189,10 @@ class FlavorActionController(wsgi.Controller):
self._check_body(body)
vals = body['removeTenantAccess']
tenant = vals['tenant']
tenant = vals.get('tenant')
if not tenant:
msg = _("Missing tenant parameter")
raise webob.exc.HTTPBadRequest(explanation=msg)
flavor = objects.Flavor(context=context, flavorid=id)
try:

View File

@ -285,6 +285,18 @@ class FlavorAccessTest(test.NoDBTestCase):
self.flavor_action_controller._addTenantAccess,
req, '2', body)
def test_add_tenant_access_with_no_tenant(self):
req = fakes.HTTPRequest.blank('/v2/fake/flavors/2/action',
use_admin_context=True)
body = {'addTenantAccess': {'foo': 'proj2'}}
self.assertRaises(exc.HTTPBadRequest,
self.flavor_action_controller._addTenantAccess,
req, '2', body)
body = {'addTenantAccess': {'tenant': ''}}
self.assertRaises(exc.HTTPBadRequest,
self.flavor_action_controller._addTenantAccess,
req, '2', body)
def test_add_tenant_access_with_already_added_access(self):
def stub_add_flavor_access(context, flavorid, projectid):
raise exception.FlavorAccessExists(flavor_id=flavorid,
@ -307,6 +319,18 @@ class FlavorAccessTest(test.NoDBTestCase):
self.flavor_action_controller._removeTenantAccess,
self.req, '3', body)
def test_delete_tenant_access_with_no_tenant(self):
req = fakes.HTTPRequest.blank('/v2/fake/flavors/2/action',
use_admin_context=True)
body = {'removeTenantAccess': {'foo': 'proj2'}}
self.assertRaises(exc.HTTPBadRequest,
self.flavor_action_controller._removeTenantAccess,
req, '2', body)
body = {'removeTenantAccess': {'tenant': ''}}
self.assertRaises(exc.HTTPBadRequest,
self.flavor_action_controller._removeTenantAccess,
req, '2', body)
def test_remove_tenant_access_with_no_admin_user(self):
req = fakes.HTTPRequest.blank('/v2/fake/flavors/2/action',
use_admin_context=False)