From 1a7aee61d98b766de64c2f31124e1e8a07193988 Mon Sep 17 00:00:00 2001 From: Artom Lifshitz Date: Thu, 12 Jul 2018 14:34:51 -0400 Subject: Don't sent disk_over_commit if nova api > 2.24 In API microversion 2.25 Nova removed the disk_over_commit parameter to the live migration server action. This patch makes sure that we don't include it in our request if we're running with 2.25 or higher. Story: #2002963 Task: #22966 Change-Id: I1bbdd33be96d82422a05982508e370237c3560f3 (cherry picked from commit d6121782d3aa6a95b883220b27a154e641b61f7f) --- .../tests/unit/compute/v2/test_server.py | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'openstackclient/tests') diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index 87c9a985..2fa9aa02 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -18,6 +18,7 @@ import getpass import mock from mock import call +from novaclient import api_versions from osc_lib import exceptions from osc_lib import utils as common_utils from oslo_utils import timeutils @@ -2030,6 +2031,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.app.client_manager.compute.api_version = \ + api_versions.APIVersion('2.24') + result = self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) @@ -2051,6 +2055,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.app.client_manager.compute.api_version = \ + api_versions.APIVersion('2.24') + result = self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) @@ -2072,6 +2079,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.app.client_manager.compute.api_version = \ + api_versions.APIVersion('2.24') + result = self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) @@ -2094,6 +2104,9 @@ class TestServerMigrate(TestServer): ] parsed_args = self.check_parser(self.cmd, arglist, verifylist) + self.app.client_manager.compute.api_version = \ + api_versions.APIVersion('2.24') + result = self.cmd.take_action(parsed_args) self.servers_mock.get.assert_called_with(self.server.id) @@ -2103,6 +2116,28 @@ class TestServerMigrate(TestServer): self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) + def test_server_live_migrate_225(self): + arglist = [ + '--live', 'fakehost', self.server.id, + ] + verifylist = [ + ('live', 'fakehost'), + ('block_migration', False), + ('wait', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.app.client_manager.compute.api_version = \ + api_versions.APIVersion('2.25') + + result = self.cmd.take_action(parsed_args) + + self.servers_mock.get.assert_called_with(self.server.id) + self.server.live_migrate.assert_called_with(block_migration=False, + host='fakehost') + self.assertNotCalled(self.servers_mock.migrate) + self.assertIsNone(result) + @mock.patch.object(common_utils, 'wait_for_status', return_value=True) def test_server_migrate_with_wait(self, mock_wait_for_status): arglist = [ -- cgit v1.2.1