diff options
| author | Zuul <zuul@review.opendev.org> | 2021-03-04 21:29:38 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2021-03-04 21:29:38 +0000 |
| commit | 8e94044710a4269306a56bae23e1ac9d5ac93b87 (patch) | |
| tree | ba0d57b9d143db3418d10cf0a4ffd0bb4da171c5 /openstackclient | |
| parent | 9aad6b8f9e93f5b9fe03f0b37c79fc489fc37b80 (diff) | |
| parent | 8868c77a201703edaded5d06aa1734265431f786 (diff) | |
| download | python-openstackclient-8e94044710a4269306a56bae23e1ac9d5ac93b87.tar.gz | |
Merge "compute: Stop silently ignore --(no-)disk-overcommit"
Diffstat (limited to 'openstackclient')
| -rw-r--r-- | openstackclient/compute/v2/server.py | 15 | ||||
| -rw-r--r-- | openstackclient/tests/unit/compute/v2/test_server.py | 34 |
2 files changed, 48 insertions, 1 deletions
diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index c42486d9..111c4a6b 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -2519,7 +2519,10 @@ revert to release the new server and restart the old one.""") '--disk-overcommit', action='store_true', default=False, - help=_('Allow disk over-commit on the destination host'), + help=_( + 'Allow disk over-commit on the destination host' + '(supported with --os-compute-api-version 2.24 or below)' + ), ) disk_group.add_argument( '--no-disk-overcommit', @@ -2528,6 +2531,7 @@ revert to release the new server and restart the old one.""") default=False, help=_( 'Do not over-commit disk on the destination host (default)' + '(supported with --os-compute-api-version 2.24 or below)' ), ) parser.add_argument( @@ -2603,6 +2607,15 @@ revert to release the new server and restart the old one.""") if compute_client.api_version < api_versions.APIVersion('2.25'): kwargs['disk_over_commit'] = parsed_args.disk_overcommit + elif parsed_args.disk_overcommit is not None: + # TODO(stephenfin): Raise an error here in OSC 7.0 + msg = _( + 'The --disk-overcommit and --no-disk-overcommit ' + 'options are only supported by ' + '--os-compute-api-version 2.24 or below; this will ' + 'be an error in a future release' + ) + self.log.warning(msg) server.live_migrate(**kwargs) else: diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index 5de6d006..9afc4ceb 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -4832,6 +4832,40 @@ class TestServerMigrate(TestServer): self.assertNotCalled(self.servers_mock.migrate) self.assertIsNone(result) + def test_server_live_migrate_with_disk_overcommit_post_v224(self): + arglist = [ + '--live-migration', + '--disk-overcommit', + self.server.id, + ] + verifylist = [ + ('live', None), + ('live_migration', True), + ('block_migration', None), + ('disk_overcommit', True), + ('wait', False), + ] + parsed_args = self.check_parser(self.cmd, arglist, verifylist) + + self.app.client_manager.compute.api_version = \ + api_versions.APIVersion('2.25') + + with mock.patch.object(self.cmd.log, 'warning') as mock_warning: + result = self.cmd.take_action(parsed_args) + + self.servers_mock.get.assert_called_with(self.server.id) + # There should be no 'disk_over_commit' value present + self.server.live_migrate.assert_called_with( + block_migration='auto', + host=None) + self.assertNotCalled(self.servers_mock.migrate) + self.assertIsNone(result) + # A warning should have been logged for using --disk-overcommit. + mock_warning.assert_called_once() + self.assertIn( + 'The --disk-overcommit and --no-disk-overcommit options ', + str(mock_warning.call_args[0][0])) + def test_server_live_migrate_with_false_value_options(self): arglist = [ '--live', 'fakehost', '--no-disk-overcommit', |
