Merge "Incorrect exception caught in qos-specs create api"

This commit is contained in:
Jenkins 2015-06-24 02:18:24 +00:00 committed by Gerrit Code Review
commit bca259fb55
2 changed files with 16 additions and 1 deletions

View File

@ -139,7 +139,7 @@ class QoSSpecsController(wsgi.Controller):
rpc.get_notifier('QoSSpecs').info(context,
'qos_specs.create',
notifier_info)
except exception.InvalidInput as err:
except exception.InvalidQoSSpecs as err:
notifier_err = dict(name=name, error_message=err)
self._notify_qos_specs_error(context,
'qos_specs.create',

View File

@ -95,6 +95,8 @@ def return_qos_specs_create(context, name, specs):
raise exception.QoSSpecsExists(specs_id=name)
elif name == "555":
raise exception.QoSSpecsCreateFailed(name=id, qos_specs=specs)
elif name == "444":
raise exception.InvalidQoSSpecs(reason=name)
pass
@ -289,6 +291,19 @@ class QoSSpecManageApiTest(test.TestCase):
self.assertEqual(1, notifier.get_notification_count())
self.assertEqual('qos_specs_1', res_dict['qos_specs']['name'])
@mock.patch('cinder.volume.qos_specs.create',
side_effect=return_qos_specs_create)
def test_create_invalid_input(self, mock_qos_get_specs):
body = {"qos_specs": {"name": "444",
"consumer": "invalid_consumer"}}
req = fakes.HTTPRequest.blank('/v2/fake/qos-specs')
notifier = fake_notifier.get_fake_notifier()
with mock.patch('cinder.rpc.get_notifier', return_value=notifier):
self.assertRaises(webob.exc.HTTPBadRequest,
self.controller.create, req, body)
self.assertEqual(1, notifier.get_notification_count())
@mock.patch('cinder.volume.qos_specs.create',
side_effect=return_qos_specs_create)
@mock.patch('cinder.volume.qos_specs.get_qos_specs_by_name',