]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Fixes quantum.api.v2.base._filters to be more intuitive
authorZhongyue Luo <zhongyue.nah@intel.com>
Wed, 19 Dec 2012 03:31:25 +0000 (11:31 +0800)
committerZhongyue Luo <zhongyue.nah@intel.com>
Fri, 11 Jan 2013 00:55:02 +0000 (08:55 +0800)
Converts values in one place and sets dictonary according to the return value

Fixes bug #1092977

Change-Id: I05dd9b24a8ab20f8c302c22f5bdda2a80ec90e19

quantum/api/v2/base.py

index 117a3bc449082840581603d4e47089961febbaae..51265de34432f014c4ce3e58186380968da04a15 100644 (file)
@@ -67,8 +67,10 @@ def _filters(request, attr_info):
         if key == 'fields':
             continue
         values = [v for v in request.GET.getall(key) if v]
-        key_attr_info = attr_info.get(key, {})
-        if not key_attr_info and values:
+        if not values:
+            continue
+        key_attr_info = attr_info.get(key)
+        if not key_attr_info:
             res[key] = values
             continue
         convert_list_to = key_attr_info.get('convert_list_to')
@@ -77,12 +79,13 @@ def _filters(request, attr_info):
             if convert_to:
                 convert_list_to = lambda values_: [convert_to(x)
                                                    for x in values_]
-        if convert_list_to:
-            result_values = convert_list_to(values)
-        else:
-            result_values = values
+            else:
+                convert_list_to = lambda values_: None
+        result_values = convert_list_to(values)
         if result_values:
             res[key] = result_values
+        else:
+            res[key] = values
     return res