From a717e4704af172f4d9711fc59f1d1785582e0d44 Mon Sep 17 00:00:00 2001 From: Michael Still Date: Sat, 16 Jun 2012 11:42:08 +1000 Subject: Enforce an instance uuid for instance_test_and_set. This method only has one caller (compute/api.py) and it turns out was already always getting a uuid, so this is a relatively minor change. Change-Id: I5beae5a707be053903f40cc98ed43b66eaf945a9 --- nova/db/api.py | 6 +++--- nova/db/sqlalchemy/api.py | 8 ++++---- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/nova/db/api.py b/nova/db/api.py index a7d5d215b..025a5848f 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -621,13 +621,13 @@ def instance_get_all_hung_in_rebooting(context, reboot_window): return IMPL.instance_get_all_hung_in_rebooting(context, reboot_window) -def instance_test_and_set(context, instance_id, attr, ok_states, +def instance_test_and_set(context, instance_uuid, attr, ok_states, new_state): """Atomically check if an instance is in a valid state, and if it is, set the instance into a new state. """ - return IMPL.instance_test_and_set( - context, instance_id, attr, ok_states, new_state) + return IMPL.instance_test_and_set(context, instance_uuid, attr, + ok_states, new_state) def instance_update(context, instance_uuid, values): diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index 735ba85ea..cbaddf531 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -1653,7 +1653,7 @@ def instance_get_all_hung_in_rebooting(context, reboot_window, session=None): @require_context -def instance_test_and_set(context, instance_id, attr, ok_states, +def instance_test_and_set(context, instance_uuid, attr, ok_states, new_state, session=None): """Atomically check if an instance is in a valid state, and if it is, set the instance into a new state. @@ -1665,10 +1665,10 @@ def instance_test_and_set(context, instance_id, attr, ok_states, query = model_query(context, models.Instance, session=session, project_only=True) - if utils.is_uuid_like(instance_id): - query = query.filter_by(uuid=instance_id) + if utils.is_uuid_like(instance_uuid): + query = query.filter_by(uuid=instance_uuid) else: - query = query.filter_by(id=instance_id) + raise exception.InvalidUUID(instance_uuid) # NOTE(vish): if with_lockmode isn't supported, as in sqlite, # then this has concurrency issues -- cgit