summaryrefslogtreecommitdiffstats
path: root/openstack
diff options
context:
space:
mode:
authorJulia Varlamova <jvarlamova@mirantis.com>2013-07-17 16:02:51 +0400
committerJulia Varlamova <jvarlamova@mirantis.com>2013-07-18 14:16:56 +0400
commit5758360a2e970a48a9c64e91b3a14a8a65825be0 (patch)
treeb32885df94337bebfbee86a6dd6bd135d91a0995 /openstack
parenta9a7a5fb3322cc5b40aa49ddc9e0c7b4f8cc804a (diff)
downloadoslo-5758360a2e970a48a9c64e91b3a14a8a65825be0.tar.gz
oslo-5758360a2e970a48a9c64e91b3a14a8a65825be0.tar.xz
oslo-5758360a2e970a48a9c64e91b3a14a8a65825be0.zip
Raise ValueError if sort_dir is unknown
Raise ValueError in case of KeyError, when sort_dir is not 'asc' or 'desc'. ValueError while adding pagination has never been raised before, because if sort direction was incorrect, KeyError has been raised while adding sorting. Change-Id: Ia0366dbdf38557c4e6a9307fb27c77fd1c1873c3
Diffstat (limited to 'openstack')
-rwxr-xr-x[-rw-r--r--]openstack/common/db/sqlalchemy/utils.py18
1 files changed, 9 insertions, 9 deletions
diff --git a/openstack/common/db/sqlalchemy/utils.py b/openstack/common/db/sqlalchemy/utils.py
index 8b855ff..3ff7bdb 100644..100755
--- a/openstack/common/db/sqlalchemy/utils.py
+++ b/openstack/common/db/sqlalchemy/utils.py
@@ -101,11 +101,14 @@ def paginate_query(query, model, limit, sort_keys, marker=None,
# Add sorting
for current_sort_key, current_sort_dir in zip(sort_keys, sort_dirs):
- sort_dir_func = {
- 'asc': sqlalchemy.asc,
- 'desc': sqlalchemy.desc,
- }[current_sort_dir]
-
+ try:
+ sort_dir_func = {
+ 'asc': sqlalchemy.asc,
+ 'desc': sqlalchemy.desc,
+ }[current_sort_dir]
+ except KeyError:
+ raise ValueError(_("Unknown sort direction, "
+ "must be 'desc' or 'asc'"))
try:
sort_key_attr = getattr(model, current_sort_key)
except AttributeError:
@@ -130,11 +133,8 @@ def paginate_query(query, model, limit, sort_keys, marker=None,
model_attr = getattr(model, sort_keys[i])
if sort_dirs[i] == 'desc':
crit_attrs.append((model_attr < marker_values[i]))
- elif sort_dirs[i] == 'asc':
- crit_attrs.append((model_attr > marker_values[i]))
else:
- raise ValueError(_("Unknown sort direction, "
- "must be 'desc' or 'asc'"))
+ crit_attrs.append((model_attr > marker_values[i]))
criteria = sqlalchemy.sql.and_(*crit_attrs)
criteria_list.append(criteria)