]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Validate string, integer limit for input parameter
authorPranaliDeore <pranali11.deore@nttdata.com>
Wed, 17 Jun 2015 11:49:24 +0000 (04:49 -0700)
committerPranali Deore <pranali11.deore@nttdata.com>
Mon, 10 Aug 2015 08:51:19 +0000 (08:51 +0000)
commitcf67960607844ef3426cae4d6e2ab96f16187b99
treebd39a05af41a7312f7ca183a2abba30eee9dd2c1
parenta1bb185a1f0311c36fd590d48531ded6ccccc5c6
Validate string, integer limit for input parameter

1. Below apis will return 500 error code on passing name or description
   parameters with more than 255 characters:
   a. consisgroup-create
   b. consisgroup-update
   c. cgsnapshot-create
   d. quota-class-update
   e. quota-update
   f. qos-create
   g. volume-manage
   h. volume-transfer

2. Below apis will return 500 error code on passing 'hard_limit' value
   greater than mysql INT type:
   a. quota-class-update
   b. quota-update
   c. encryption-type-create

3. Below apis accept name as string with whitespaces:
   a. consisgroup-create
   b. cgsnapshot-create
   c. qos-create
   d. volume-transfer

4. Type-key api will return 500 error code on passing key or value with
   more than 255 characters.

Added new method
1. validate_name_and_description() in
   cinder.api.openstack.wsgi.Controller to validate length of name and
   description and returned 400 if it exceeds the limit and removing
   leading or trailing whitespaces and string containing only
   whitespaces.
2. validate_string_length() in cinder.api.openstack.wsgi.Controller to
   validate length of string and returned 400 if it exceeds the limit.
3. validate_integer() method in cinder.utils to validate integer
   limit and returned 400 if limit exceeds.

APIImpact
1. For all above apis 400 response will be returned.
2. Earlier it was possible to pass only whitespaces or leading-trailing
   spaces to 'name' parameters and 'key' while updating key-value in
   type-key api.
   Now it will raise 400 error if only whitespaces are passed and will
   remove leading-trailing spaces if present in other cases.

Closes-Bug: 1466351
Closes-Bug: 1463379
Closes-Bug: 1465967
Change-Id: I0c0029d61ba2b293b579d1afffec0bdf062b22a8
20 files changed:
cinder/api/contrib/cgsnapshots.py
cinder/api/contrib/consistencygroups.py
cinder/api/contrib/qos_specs_manage.py
cinder/api/contrib/quota_classes.py
cinder/api/contrib/quotas.py
cinder/api/contrib/types_extra_specs.py
cinder/api/contrib/volume_manage.py
cinder/api/contrib/volume_transfer.py
cinder/api/contrib/volume_type_encryption.py
cinder/api/openstack/wsgi.py
cinder/tests/unit/api/contrib/test_cgsnapshots.py
cinder/tests/unit/api/contrib/test_consistencygroups.py
cinder/tests/unit/api/contrib/test_qos_specs_manage.py
cinder/tests/unit/api/contrib/test_quotas.py
cinder/tests/unit/api/contrib/test_quotas_classes.py
cinder/tests/unit/api/contrib/test_types_extra_specs.py
cinder/tests/unit/api/contrib/test_volume_manage.py
cinder/tests/unit/api/contrib/test_volume_transfer.py
cinder/tests/unit/api/contrib/test_volume_type_encryption.py
cinder/tests/unit/api/openstack/test_wsgi.py