From 62bcfc595dc49a7035b95daadc72e8744c48c8e7 Mon Sep 17 00:00:00 2001 From: Oleg Bondarev Date: Tue, 16 Feb 2016 19:10:03 +0300 Subject: [PATCH] Add ability to filter migrations by instance uuid This will be used by dependent patch. Partial-Bug: #1414559 Change-Id: I20470487287fa2a7aa919507073f75181368c3c0 --- nova/db/sqlalchemy/api.py | 3 +++ nova/tests/unit/db/test_db_api.py | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py index fd983861a9..992707549b 100644 --- a/nova/db/sqlalchemy/api.py +++ b/nova/db/sqlalchemy/api.py @@ -4957,6 +4957,9 @@ def migration_get_all_by_filters(context, filters): if "hidden" in filters: hidden = filters["hidden"] query = query.filter(models.Migration.hidden == hidden) + if "instance_uuid" in filters: + uuid = filters["instance_uuid"] + query = query.filter(models.Migration.instance_uuid == uuid) return query.all() diff --git a/nova/tests/unit/db/test_db_api.py b/nova/tests/unit/db/test_db_api.py index 5d299b5773..0ade1498b9 100644 --- a/nova/tests/unit/db/test_db_api.py +++ b/nova/tests/unit/db/test_db_api.py @@ -1436,6 +1436,16 @@ class MigrationTestCase(test.TestCase): dests = [x['dest_compute'] for x in migrations] self.assertEqual(['host1', 'host3'], dests) + def test_get_migrations_by_filters_instance_uuid(self): + migrations = db.migration_get_all_by_filters(self.ctxt, filters={}) + for migration in migrations: + filters = {'instance_uuid': migration['instance_uuid']} + instance_migrations = db.migration_get_all_by_filters( + self.ctxt, filters) + self.assertEqual(1, len(instance_migrations)) + self.assertEqual(migration['instance_uuid'], + instance_migrations[0]['instance_uuid']) + def test_migration_get_unconfirmed_by_dest_compute(self): # Ensure no migrations are returned. results = db.migration_get_unconfirmed_by_dest_compute(self.ctxt, 10,