From 2b75d6be2cc3bdd0621a198619ee6e1c7a2ff90f Mon Sep 17 00:00:00 2001 From: Zhongyue Luo Date: Wed, 19 Dec 2012 11:31:25 +0800 Subject: [PATCH] Fixes quantum.api.v2.base._filters to be more intuitive Converts values in one place and sets dictonary according to the return value Fixes bug #1092977 Change-Id: I05dd9b24a8ab20f8c302c22f5bdda2a80ec90e19 --- quantum/api/v2/base.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/quantum/api/v2/base.py b/quantum/api/v2/base.py index 117a3bc44..51265de34 100644 --- a/quantum/api/v2/base.py +++ b/quantum/api/v2/base.py @@ -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 -- 2.45.2