summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Behrens <cbehrens@codestud.com>2011-08-05 15:06:07 -0700
committerChris Behrens <cbehrens@codestud.com>2011-08-05 15:06:07 -0700
commitb2fe710c59ba266b9afd67db1cae60a6db5c71e3 (patch)
tree1d58feb87a9ecd890940b8ca7260a2963f7d38f6
parentfd9a761f25c6095d1ea47e09cdac503683b44bfc (diff)
rename _check_servers_options, add some comments and small cleanup in the db get_by_filters call
-rw-r--r--nova/api/openstack/servers.py4
-rw-r--r--nova/db/sqlalchemy/api.py8
2 files changed, 7 insertions, 5 deletions
diff --git a/nova/api/openstack/servers.py b/nova/api/openstack/servers.py
index b3776ed44..9a3872113 100644
--- a/nova/api/openstack/servers.py
+++ b/nova/api/openstack/servers.py
@@ -56,7 +56,7 @@ class Controller(object):
self.compute_api = compute.API()
self.helper = helper.CreateInstanceHelper(self)
- def _check_servers_options(self, context, search_options):
+ def _remove_invalid_options(self, context, search_options):
if FLAGS.allow_admin_api and context.is_admin:
# Allow all options
return
@@ -156,7 +156,7 @@ class Controller(object):
search_opts.update(req.str_GET)
context = req.environ['nova.context']
- self._check_servers_options(context, search_opts)
+ self._remove_invalid_options(context, search_opts)
# Convert recurse_zones into a boolean
search_opts['recurse_zones'] = utils.bool_from_str(
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index d6e7204b4..65a1c19a1 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -1206,6 +1206,8 @@ def instance_get_all_by_filters(context, filters):
options(joinedload('metadata')).\
options(joinedload('instance_type'))
+ # Make a copy of the filters dictionary to use going forward, as we'll
+ # be modifying it and we shouldn't affect the caller's use of it.
filters = filters.copy()
if not context.is_admin:
@@ -1224,10 +1226,10 @@ def instance_get_all_by_filters(context, filters):
if key in exact_match_filter_names]
for filter_name in query_filters:
+ # Do the matching and remove the filter from the dictionary
+ # so we don't try it again below..
query_prefix = _exact_match_filter(query_prefix, filter_name,
- filters[filter_name])
- # Remove this from filters, so it doesn't get tried below
- del filters[filter_name]
+ filters.pop(filter_name))
instances = query_prefix.all()