summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorZuul <zuul@review.opendev.org>2021-03-04 21:29:38 +0000
committerGerrit Code Review <review@openstack.org>2021-03-04 21:29:38 +0000
commit8e94044710a4269306a56bae23e1ac9d5ac93b87 (patch)
treeba0d57b9d143db3418d10cf0a4ffd0bb4da171c5 /openstackclient
parent9aad6b8f9e93f5b9fe03f0b37c79fc489fc37b80 (diff)
parent8868c77a201703edaded5d06aa1734265431f786 (diff)
downloadpython-openstackclient-8e94044710a4269306a56bae23e1ac9d5ac93b87.tar.gz
Merge "compute: Stop silently ignore --(no-)disk-overcommit"
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/compute/v2/server.py15
-rw-r--r--openstackclient/tests/unit/compute/v2/test_server.py34
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',