Merge "Validate name in qos-spec"
This commit is contained in:
commit
ca9038628e
@ -83,10 +83,15 @@ class QoSSpecsController(wsgi.Controller):
|
||||
msg = _("Please specify a name for QoS specs.")
|
||||
raise webob.exc.HTTPBadRequest(explanation=msg)
|
||||
|
||||
utils.validate_dictionary_string_length(specs)
|
||||
self.validate_string_length(name, 'name', min_length=1,
|
||||
max_length=255, remove_whitespaces=True)
|
||||
name = name.strip()
|
||||
# Remove name from 'specs' since passing it in as separate param
|
||||
del specs['name']
|
||||
|
||||
# Validate the key-value pairs in the qos spec.
|
||||
utils.validate_dictionary_string_length(specs)
|
||||
|
||||
try:
|
||||
spec = qos_specs.create(context, name, specs)
|
||||
notifier_info = dict(name=name, specs=specs)
|
||||
|
@ -458,8 +458,7 @@ class QoSSpecManageApiTest(test.TestCase):
|
||||
|
||||
@ddt.data({'name': 'fake_name', 'a' * 256: 'a'},
|
||||
{'name': 'fake_name', 'a': 'a' * 256},
|
||||
{'name': 'fake_name' * 256, 'a': 'a'},
|
||||
{'name': 'fake_name' * 256, '': 'a'})
|
||||
{'name': 'fake_name', '': 'a'})
|
||||
def test_create_qos_with_invalid_specs(self, value):
|
||||
body = {'qos_specs': value}
|
||||
req = fakes.HTTPRequest.blank('/v2/%s/qos-specs' % fake.PROJECT_ID,
|
||||
@ -468,6 +467,18 @@ class QoSSpecManageApiTest(test.TestCase):
|
||||
self.assertRaises(exception.InvalidInput,
|
||||
self.controller.create, req, body)
|
||||
|
||||
@ddt.data({'name': None},
|
||||
{'name': 'n' * 256},
|
||||
{'name': ''},
|
||||
{'name': ' '})
|
||||
def test_create_qos_with_invalid_spec_name(self, value):
|
||||
body = {'qos_specs': value}
|
||||
req = fakes.HTTPRequest.blank('/v2/%s/qos-specs' % fake.PROJECT_ID,
|
||||
use_admin_context=True)
|
||||
req.method = 'POST'
|
||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||
self.controller.create, req, body)
|
||||
|
||||
@mock.patch('cinder.volume.qos_specs.update',
|
||||
side_effect=return_qos_specs_update)
|
||||
def test_update(self, mock_qos_update):
|
||||
|
Loading…
x
Reference in New Issue
Block a user