diff --git a/watcher/applier/actions/migration.py b/watcher/applier/actions/migration.py index 4a6bc2683..781f378cd 100644 --- a/watcher/applier/actions/migration.py +++ b/watcher/applier/actions/migration.py @@ -186,7 +186,7 @@ class Migrate(base.BaseAction): return self.migrate(destination=self.destination_node) def revert(self): - LOG.info('Migrate action do not revert!') + return self.migrate(destination=self.source_node) def abort(self): nova = nova_helper.NovaHelper(osc=self.osc) diff --git a/watcher/tests/applier/actions/test_migration.py b/watcher/tests/applier/actions/test_migration.py index ec2c38c5a..b13eb9e5e 100644 --- a/watcher/tests/applier/actions/test_migration.py +++ b/watcher/tests/applier/actions/test_migration.py @@ -185,6 +185,29 @@ class TestMigration(base.TestCase): dest_hostname="compute2-hostname" ) + def test_revert_live_migration(self): + self.m_helper.find_instance.return_value = self.INSTANCE_UUID + + self.action.revert() + + self.m_helper_cls.assert_called_once_with(osc=self.m_osc) + self.m_helper.live_migrate_instance.assert_called_once_with( + instance_id=self.INSTANCE_UUID, + dest_hostname="compute1-hostname" + ) + + def test_revert_cold_migration(self): + self.m_helper.find_instance.return_value = self.INSTANCE_UUID + + self.action_cold.revert() + + self.m_helper_cls.assert_called_once_with(osc=self.m_osc) + self.m_helper.watcher_non_live_migrate_instance.\ + assert_called_once_with( + instance_id=self.INSTANCE_UUID, + dest_hostname="compute1-hostname" + ) + def test_abort_live_migrate(self): migration = mock.MagicMock() migration.id = "2"