summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Beliveau <ludovic.beliveau@windriver.com>2016-02-08 10:36:30 -0500
committerLee Yarwood <lyarwood@redhat.com>2016-04-11 11:23:12 +0100
commit3bc45979f146280fbd1ce722b3ffcb99f33d3761 (patch)
treec8416d02d2f12bd65fb076289a6427ecde6e86d0
parentfa3fb5e61f1648bc94b426451136da763b1cc73f (diff)
downloadnova-3bc45979f146280fbd1ce722b3ffcb99f33d3761.tar.gz
Failed migration shoudn't be reported as in progress
This fix add 'failed' status to the list of filters for migrations that are reported by migration_get_in_progress_by_host_and_node. Change-Id: I7de143d73a84339d2184d09e5907cbbe941a2e66 Closes-Bug: #1543123 (cherry picked from commit 0f8f854c2646e2e6677efdf8b1bbf82faf57f01f)
-rw-r--r--nova/db/sqlalchemy/api.py3
-rw-r--r--nova/tests/unit/db/test_db_api.py2
2 files changed, 4 insertions, 1 deletions
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index 53451b7ebe..bee083ef86 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -4483,7 +4483,8 @@ def migration_get_in_progress_by_host_and_node(context, host, node):
and_(models.Migration.dest_compute == host,
models.Migration.dest_node == node))).\
filter(~models.Migration.status.in_(['accepted', 'confirmed',
- 'reverted', 'error'])).\
+ 'reverted', 'error',
+ 'failed'])).\
options(joinedload_all('instance.system_metadata')).\
all()
diff --git a/nova/tests/unit/db/test_db_api.py b/nova/tests/unit/db/test_db_api.py
index 1ec80012b7..8df2b91a3c 100644
--- a/nova/tests/unit/db/test_db_api.py
+++ b/nova/tests/unit/db/test_db_api.py
@@ -1250,6 +1250,7 @@ class MigrationTestCase(test.TestCase):
self._create(status='reverted')
self._create(status='confirmed')
self._create(status='error')
+ self._create(status='failed')
self._create(status='accepted')
self._create(source_compute='host2', source_node='b',
dest_compute='host1', dest_node='a')
@@ -1277,6 +1278,7 @@ class MigrationTestCase(test.TestCase):
self.assertNotEqual('confirmed', migration['status'])
self.assertNotEqual('reverted', migration['status'])
self.assertNotEqual('error', migration['status'])
+ self.assertNotEqual('failed', migration['status'])
self.assertNotEqual('accepted', migration['status'])
def test_migration_get_in_progress_joins(self):