Merge "Add a new test case to migrate VM with two networks" into mcp/caracal
diff --git a/tempest/common/waiters.py b/tempest/common/waiters.py
index 36c2b8b..ae0bd76 100644
--- a/tempest/common/waiters.py
+++ b/tempest/common/waiters.py
@@ -679,8 +679,9 @@
raise lib_exc.TimeoutException()
-def wait_for_cloudinit(ssh_client, timeout=60):
+def wait_for_cloudinit(ssh_client):
"""Waits for cloud-init completed"""
+ timeout = CONF.compute.cloudinit_timeout
start_time = int(time.time())
while int(time.time()) - start_time < timeout:
try:
diff --git a/tempest/config.py b/tempest/config.py
index cffeb35..d5eeb21 100644
--- a/tempest/config.py
+++ b/tempest/config.py
@@ -348,6 +348,9 @@
help="Timeout in seconds to wait for an instance to build. "
"Other services that do not define build_timeout will "
"inherit this value."),
+ cfg.IntOpt('cloudinit_timeout',
+ default=90,
+ help="Timeout in seconds to wait for a cloudinit on VM."),
cfg.IntOpt('ready_wait',
default=0,
help="Additional wait time for clean state, when there is "
diff --git a/tempest/scenario/manager.py b/tempest/scenario/manager.py
index 212c1b3..94cc3bd 100644
--- a/tempest/scenario/manager.py
+++ b/tempest/scenario/manager.py
@@ -1342,12 +1342,12 @@
return self.create_server(**create_kwargs)
def wait_for_cloud_init(
- self, ip_address, server, private_key, username, timeout=60):
+ self, ip_address, server, private_key, username):
ssh_client = self.get_remote_client(ip_address,
private_key=private_key,
server=server,
username=username)
- waiters.wait_for_cloudinit(ssh_client, timeout)
+ waiters.wait_for_cloudinit(ssh_client)
def create_volume_from_image(self, **kwargs):
"""Create volume from image.
diff --git a/tempest/scenario/test_network_advanced_server_ops.py b/tempest/scenario/test_network_advanced_server_ops.py
index 3a93f74..ba5245b 100644
--- a/tempest/scenario/test_network_advanced_server_ops.py
+++ b/tempest/scenario/test_network_advanced_server_ops.py
@@ -193,9 +193,10 @@
# check if microversion is less than 2.25 because of
# disk_over_commit is depracted since compute api version 2.25
# if min_microversion is None, it runs on version < 2.25
- if not migration and (CONF.compute.min_microversion is None or
- CONF.compute.min_microversion < '2.25'):
- migration_kwargs['disk_over_commit'] = False
+ if (self.compute_request_microversion and
+ self.compute_request_microversion < '2.25'):
+ if not migration:
+ migration_kwargs['disk_over_commit'] = False
if dest_host:
migration_kwargs['host'] = dest_host
diff --git a/tempest/scenario/test_network_basic_ops.py b/tempest/scenario/test_network_basic_ops.py
index 085d06a..5cdf692 100644
--- a/tempest/scenario/test_network_basic_ops.py
+++ b/tempest/scenario/test_network_basic_ops.py
@@ -401,10 +401,29 @@
def _live_migrate_server(self, server, host_id=None):
src_host = self.get_host_for_server(server['id'])
+ # check if microversion is equal or more than 2.25 because of
+ # block_migration(str) = 'auto' is supported since compute
+ # api version 2.25
+ # else use block_migration_for_live_migration config option
+ # and add disk_over_commit option to migration_kwargs
+ if (self.compute_request_microversion and
+ self.compute_request_microversion < '2.25'):
+ migration_kwargs = {
+ "host": host_id,
+ "block_migration": (CONF.compute_feature_enabled.
+ block_migration_for_live_migration),
+ "disk_over_commit": False,
+ }
+
+ else:
+ migration_kwargs = {
+ "host": host_id,
+ "block_migration": "auto",
+ }
+
self.os_adm.servers_client.live_migrate_server(
server_id=server['id'],
- block_migration='auto',
- host=host_id)
+ **migration_kwargs)
waiters.wait_for_server_status(
self.servers_client, server['id'], 'ACTIVE')