Assemble similar stuffs into a validation method
Currently, controllers have similar stuffs to validate query parameter either to limit the listing result or to make a marker starts with next to it. This patch intoduces a validation method 'get_validated_param' for those stuffs to get a pre-validated value with some parameters (e.g. default, limit) to keep the code clean. Change-Id: Ia5e939ee342bf4fb8533f1aa97419f5aad9b7fe1
This commit is contained in:
@@ -45,11 +45,9 @@ class BucketController(Controller):
|
||||
"""
|
||||
Handle GET Bucket (List Objects) request
|
||||
"""
|
||||
if 'max-keys' in req.params:
|
||||
if req.params.get('max-keys').isdigit() is False:
|
||||
raise InvalidArgument('max-keys', req.params['max-keys'])
|
||||
|
||||
max_keys = int(req.params.get('max-keys', CONF.max_bucket_listing))
|
||||
max_keys = req.get_validated_param('max-keys', CONF.max_bucket_listing)
|
||||
# TODO: Separate max_bucket_listing and default_bucket_listing
|
||||
max_keys = min(max_keys, CONF.max_bucket_listing)
|
||||
|
||||
encoding_type = req.params.get('encoding-type')
|
||||
|
||||
@@ -145,20 +145,8 @@ class UploadsController(Controller):
|
||||
|
||||
keymarker = req.params.get('key-marker', '')
|
||||
uploadid = req.params.get('upload-id-marker', '')
|
||||
maxuploads = DEFAULT_MAX_UPLOADS
|
||||
|
||||
if 'max-uploads' in req.params:
|
||||
try:
|
||||
maxuploads = int(req.params['max-uploads'])
|
||||
if maxuploads < 0 or DEFAULT_MAX_UPLOADS < maxuploads:
|
||||
err_msg = 'Argument max-uploads must be an integer ' \
|
||||
'between 0 and %d' % DEFAULT_MAX_UPLOADS
|
||||
raise InvalidArgument('max-uploads', maxuploads, err_msg)
|
||||
except ValueError:
|
||||
err_msg = 'Provided max-uploads not an integer or within ' \
|
||||
'integer range'
|
||||
raise InvalidArgument('max-uploads', req.params['max-uploads'],
|
||||
err_msg)
|
||||
maxuploads = req.get_validated_param(
|
||||
'max-uploads', DEFAULT_MAX_UPLOADS, DEFAULT_MAX_UPLOADS)
|
||||
|
||||
query = {
|
||||
'format': 'json',
|
||||
@@ -296,39 +284,10 @@ class UploadController(Controller):
|
||||
upload_id = req.params['uploadId']
|
||||
_check_upload_info(req, self.app, upload_id)
|
||||
|
||||
maxparts = DEFAULT_MAX_PARTS
|
||||
part_num_marker = 0
|
||||
|
||||
if 'max-parts' in req.params:
|
||||
try:
|
||||
maxparts = int(req.params['max-parts'])
|
||||
if maxparts < 0 or CONF.max_parts < maxparts:
|
||||
err_msg = 'Argument max-parts must be an integer between 0 and' \
|
||||
' %d' % CONF.max_parts
|
||||
raise InvalidArgument('max-parts',
|
||||
req.params['max-parts'],
|
||||
err_msg)
|
||||
except ValueError:
|
||||
err_msg = 'Provided max-parts not an integer or within ' \
|
||||
'integer range'
|
||||
raise InvalidArgument('max-parts', req.params['max-parts'],
|
||||
err_msg)
|
||||
|
||||
if 'part-number-marker' in req.params:
|
||||
try:
|
||||
part_num_marker = int(req.params['part-number-marker'])
|
||||
if part_num_marker < 0 or CONF.max_parts < part_num_marker:
|
||||
err_msg = 'Argument part-number-marker must be an integer ' \
|
||||
'between 0 and %d' % CONF.max_parts
|
||||
raise InvalidArgument('part-number-marker',
|
||||
req.params['part-number-marker'],
|
||||
err_msg)
|
||||
except ValueError:
|
||||
err_msg = 'Provided part-number-marker not an integer or ' \
|
||||
'within integer range'
|
||||
raise InvalidArgument('part-number-marker',
|
||||
req.params['part-number-marker'],
|
||||
err_msg)
|
||||
maxparts = req.get_validated_param(
|
||||
'max-parts', DEFAULT_MAX_PARTS, CONF.max_parts)
|
||||
part_num_marker = req.get_validated_param(
|
||||
'part-number-marker', 0, CONF.max_parts)
|
||||
|
||||
query = {
|
||||
'format': 'json',
|
||||
|
||||
Reference in New Issue
Block a user