diff options
author | Roman Safronov <rsafrono@redhat.com> | 2022-02-10 12:26:43 +0200 |
---|---|---|
committer | Eduardo Olivares <eolivare@redhat.com> | 2022-05-19 18:41:15 +0200 |
commit | 72575889c834b9e93923102e4f5ee82e1031276f (patch) | |
tree | e711dbdd7db33ced95344fd9deeee2a018fb2fe9 /tempest/scenario | |
parent | 569c7a89f54c94494fde46ce2aa4fbd26492e640 (diff) | |
download | tempest-72575889c834b9e93923102e4f5ee82e1031276f.tar.gz |
Validate network downtime during live migration
This patch adds the ability to measure network downtime during live
migration process.
A fixture has been added to start and stop a background pinger
process and also read status from it.
The downtime measurement has 0.2 seconds granularity.
In order to reduce overall traffic the ping payload size set to
minimal value.
Change-Id: I83c6a5d49f5d4da05deb677907e5048ecdd2242b
Diffstat (limited to 'tempest/scenario')
-rw-r--r-- | tempest/scenario/test_network_advanced_server_ops.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/tempest/scenario/test_network_advanced_server_ops.py b/tempest/scenario/test_network_advanced_server_ops.py index b48ac3c86..1c00212a0 100644 --- a/tempest/scenario/test_network_advanced_server_ops.py +++ b/tempest/scenario/test_network_advanced_server_ops.py @@ -15,7 +15,9 @@ import testtools +from oslo_log import log from tempest.common import utils +from tempest.common.utils import net_downtime from tempest.common import waiters from tempest import config from tempest.lib import decorators @@ -23,6 +25,8 @@ from tempest.scenario import manager CONF = config.CONF +LOG = log.getLogger(__name__) + class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest): """Check VM connectivity after some advanced instance operations executed: @@ -252,6 +256,11 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest): block_migration = (CONF.compute_feature_enabled. block_migration_for_live_migration) old_host = self.get_host_for_server(server['id']) + + downtime_meter = net_downtime.NetDowntimeMeter( + floating_ip['floating_ip_address']) + self.useFixture(downtime_meter) + self.admin_servers_client.live_migrate_server( server['id'], host=None, block_migration=block_migration, disk_over_commit=False) @@ -261,6 +270,16 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest): new_host = self.get_host_for_server(server['id']) self.assertNotEqual(old_host, new_host, 'Server did not migrate') + downtime = downtime_meter.get_downtime() + self.assertIsNotNone(downtime) + LOG.debug("Downtime seconds measured with downtime_meter = %r", + downtime) + allowed_downtime = CONF.validation.allowed_network_downtime + self.assertLess( + downtime, allowed_downtime, + "Downtime of {} seconds is higher than expected '{}'".format( + downtime, allowed_downtime)) + self._wait_server_status_and_check_network_connectivity( server, keypair, floating_ip) |