From: Zhongyue Luo Date: Wed, 2 Jan 2013 11:46:17 +0000 (+0800) Subject: Optimize if/else logic in quantum.api.v2.base.prepare_request_body() X-Git-Url: https://review.fuel-infra.org/gitweb?a=commitdiff_plain;h=9db691728e751a5605907617f570cbf0ffad7e99;p=openstack-build%2Fneutron-build.git Optimize if/else logic in quantum.api.v2.base.prepare_request_body() Removed redundant checkups of variables Fixes bug #1096932 Change-Id: Icdee0e946a77865928b942d3248e39e771af0656 --- diff --git a/quantum/api/v2/base.py b/quantum/api/v2/base.py index 117a3bc44..e2799037f 100644 --- a/quantum/api/v2/base.py +++ b/quantum/api/v2/base.py @@ -471,20 +471,18 @@ class Controller(object): if is_create: # POST for attr, attr_vals in attr_info.iteritems(): - is_required = ('default' not in attr_vals and - attr_vals['allow_post']) - if is_required and attr not in res_dict: - msg = _("Failed to parse request. Required " - " attribute '%s' not specified") % attr - raise webob.exc.HTTPBadRequest(msg) - - if not attr_vals['allow_post'] and attr in res_dict: - msg = _("Attribute '%s' not allowed in POST") % attr - raise webob.exc.HTTPBadRequest(msg) - if attr_vals['allow_post']: + if ('default' not in attr_vals and + attr not in res_dict): + msg = _("Failed to parse request. Required " + "attribute '%s' not specified") % attr + raise webob.exc.HTTPBadRequest(msg) res_dict[attr] = res_dict.get(attr, attr_vals.get('default')) + else: + if attr in res_dict: + msg = _("Attribute '%s' not allowed in POST") % attr + raise webob.exc.HTTPBadRequest(msg) else: # PUT for attr, attr_vals in attr_info.iteritems(): if attr in res_dict and not attr_vals['allow_put']: @@ -492,16 +490,14 @@ class Controller(object): raise webob.exc.HTTPBadRequest(msg) for attr, attr_vals in attr_info.iteritems(): + if (attr not in res_dict or + res_dict[attr] is attributes.ATTR_NOT_SPECIFIED): + continue # Convert values if necessary - if ('convert_to' in attr_vals and - attr in res_dict and - res_dict[attr] != attributes.ATTR_NOT_SPECIFIED): + if 'convert_to' in attr_vals: res_dict[attr] = attr_vals['convert_to'](res_dict[attr]) - # Check that configured values are correct - if not ('validate' in attr_vals and - attr in res_dict and - res_dict[attr] != attributes.ATTR_NOT_SPECIFIED): + if 'validate' not in attr_vals: continue for rule in attr_vals['validate']: res = attributes.validators[rule](res_dict[attr],