From 5758360a2e970a48a9c64e91b3a14a8a65825be0 Mon Sep 17 00:00:00 2001 From: Julia Varlamova Date: Wed, 17 Jul 2013 16:02:51 +0400 Subject: 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 --- openstack/common/db/sqlalchemy/utils.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) mode change 100644 => 100755 openstack/common/db/sqlalchemy/utils.py (limited to 'openstack') diff --git a/openstack/common/db/sqlalchemy/utils.py b/openstack/common/db/sqlalchemy/utils.py old mode 100644 new mode 100755 index 8b855ff..3ff7bdb --- 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) -- cgit