Adds error handling for remove_role from plan API
Adds try-except block to catch UnknownUUID exception and raise PlanNotFound which is handled correctly and Tuskar returns 404 HTTP status. Add tests. Change-Id: I56d7f92d9e9c69f115bca0a5b526eeb67f0cec2a
This commit is contained in:
parent
002d347e72
commit
785582b8f0
@ -96,6 +96,12 @@ class RolesController(rest.RestController):
|
||||
LOG.debug('Removing role: %(role_uuid)s from plan: %(plan_uuid)s' %
|
||||
{'role_uuid': role_uuid, 'plan_uuid': plan_uuid})
|
||||
manager = PlansManager()
|
||||
updated_plan = manager.remove_role_from_plan(plan_uuid, role_uuid)
|
||||
try:
|
||||
updated_plan = manager.remove_role_from_plan(plan_uuid, role_uuid)
|
||||
except storage_exceptions.UnknownUUID as e:
|
||||
LOG.debug(('Either the plan UUID {0} or role UUID {1} could not be'
|
||||
'found').format(plan_uuid, role_uuid))
|
||||
raise exception.NotFound(
|
||||
message=str(e))
|
||||
transfer_plan = models.Plan.from_tuskar_model(updated_plan)
|
||||
return transfer_plan
|
||||
|
@ -118,3 +118,16 @@ class RolesTests(base.TestCase):
|
||||
self.assertEqual(response.status_int, 200)
|
||||
self.assertEqual(result['uuid'], 'a')
|
||||
self.assertEqual(result['name'], 'n')
|
||||
|
||||
@mock.patch('tuskar.manager.plan.PlansManager.remove_role_from_plan')
|
||||
def test_delete_unkown_uuid(self, mock_remove):
|
||||
# Setup
|
||||
mock_remove.side_effect = storage_exceptions.UnknownUUID()
|
||||
|
||||
# Test
|
||||
response = self.app.delete_json(URL_PLAN_ROLES + '/qwerty12345',
|
||||
status=404)
|
||||
|
||||
# Verify
|
||||
mock_remove.assert_called_once_with('plan_uuid', 'qwerty12345')
|
||||
self.assertEqual(response.status_int, 404)
|
||||
|
Loading…
x
Reference in New Issue
Block a user