From 8135504faaeeb91a52da6f11ddb88768372bb673 Mon Sep 17 00:00:00 2001 From: Yikun Jiang <yikunkero@gmail.com> Date: Thu, 12 Oct 2017 16:07:42 +0800 Subject: [PATCH] Add migration_get_by_uuid in db api. This will be used by the migration_get_all_by_filters method which will later be used by the MigrationAPI to support the migrations pagination. Part of blueprint add-pagination-and-change-since-for-migration-list Change-Id: I12c5babaec3a09dd0c6fbb5b77060a352ea373e7 --- nova/db/api.py | 5 +++++ nova/db/sqlalchemy/api.py | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/nova/db/api.py b/nova/db/api.py index da8d73633..9e5c9a649 100644 --- a/nova/db/api.py +++ b/nova/db/api.py @@ -534,6 +534,11 @@ def migration_get(context, migration_id): return IMPL.migration_get(context, migration_id) +def migration_get_by_uuid(context, migration_uuid): + """Finds a migration by the migration uuid.""" + return IMPL.migration_get_by_uuid(context, migration_uuid) + + def migration_get_by_id_and_instance(context, migration_id, instance_uuid): """Finds a migration by the migration id and the instance uuid.""" return IMPL.migration_get_by_id_and_instance(context, diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index b67ff102d..e20c965de 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -4807,6 +4807,18 @@ def migration_get(context, id): return result +@pick_context_manager_reader +def migration_get_by_uuid(context, migration_uuid): + result = model_query(context, models.Migration, read_deleted="yes").\ + filter_by(uuid=migration_uuid).\ + first() + + if not result: + raise exception.MigrationNotFound(migration_id=migration_uuid) + + return result + + @pick_context_manager_reader def migration_get_by_id_and_instance(context, id, instance_uuid): result = model_query(context, models.Migration).\