~bgh/neutron/ovs-readme

« back to all changes in this revision

Viewing changes to quantum/api/api_common.py

  • Committer: Dan Wendlandt
  • Date: 2011-09-08 23:28:16 UTC
  • mfrom: (61.1.3 quantum-bug834008)
  • Revision ID: dan@nicira.com-20110908232816-0s3xxl61f97vxndx
merge salv fix for bug834008

Show diffs side-by-side

added added

removed removed

Lines of Context:
35
35
 
36
36
    def _parse_request_params(self, req, params):
37
37
        results = {}
 
38
        data = {}
 
39
        # Parameters are expected to be in request body only
 
40
        if req.body:
 
41
            des_body = self._deserialize(req.body,
 
42
                                         req.best_match_content_type())
 
43
            data = des_body and des_body.get(self._resource_name, None)
 
44
            if not data:
 
45
                msg = ("Failed to parse request. Resource: " +
 
46
                       self._resource_name + " not found in request body")
 
47
                for line in msg.split('\n'):
 
48
                    LOG.error(line)
 
49
                raise exc.HTTPBadRequest(msg)
 
50
 
38
51
        for param in params:
39
52
            param_name = param['param-name']
40
 
            param_value = None
41
 
            # Parameters are expected to be in request body only
42
 
            if req.body:
43
 
                des_body = self._deserialize(req.body,
44
 
                                             req.best_match_content_type())
45
 
                data = des_body and des_body.get(self._resource_name, None)
46
 
                if not data:
47
 
                    msg = ("Failed to parse request. Resource: " +
48
 
                           self._resource_name + " not found in request body")
49
 
                    for line in msg.split('\n'):
50
 
                        LOG.error(line)
51
 
                    raise exc.HTTPBadRequest(msg)
52
 
                param_value = data.get(param_name, None)
53
 
 
 
53
            param_value = data.get(param_name, None)
54
54
            # If the parameter wasn't found and it was required, return 400
55
 
            if not param_value and param['required']:
 
55
            if param_value is None and param['required']:
56
56
                msg = ("Failed to parse request. " +
57
57
                       "Parameter: " + param_name + " not specified")
58
58
                for line in msg.split('\n'):
59
59
                    LOG.error(line)
60
60
                raise exc.HTTPBadRequest(msg)
61
61
            results[param_name] = param_value or param.get('default-value')
 
62
 
62
63
        return results