From: Cédric Ollivier Date: Wed, 17 Sep 2025 12:40:05 +0000 (+0200) Subject: Fix live migration test X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=commitdiff_plain;h=2b7c7cc3911ddd81088d4a0571d290b6e72c2781;p=functest.git Fix live migration test https://github.com/openstack/tempest/commit/4e49975c9fa887e9a4a7aefdcff74fde48894b56 https://github.com/openstack/tempest/commit/ba5cb852b8fb1b34a6ce31a4995b6635522f4381 https://docs.openstack.org/releasenotes/tempest/v37.0.0.html Change-Id: I67b731276fa77a1d563cc872e760c54b588140c0 Signed-off-by: Cédric Ollivier --- diff --git a/docker/core/Dockerfile b/docker/core/Dockerfile index 8697e0e35..b02684ded 100644 --- a/docker/core/Dockerfile +++ b/docker/core/Dockerfile @@ -6,6 +6,8 @@ ARG OPENSTACK_TAG=unmaintained/zed COPY Switch-to-threading.Thread-for-Rally-tasks.patch /tmp/Switch-to-threading.Thread-for-Rally-tasks.patch COPY Create-new-server-in-test_create_backup.patch /tmp/Create-new-server-in-test_create_backup.patch COPY 9df662e053.patch /tmp/9df662e053.patch +COPY Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch /tmp/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch +COPY Fix-str-to-str-comparison-in-live-migration-test.patch /tmp/Fix-str-to-str-comparison-in-live-migration-test.patch RUN apk -U upgrade && \ apk --no-cache add --update \ python3 py3-wheel libffi openssl libjpeg-turbo py3-pip bash \ @@ -42,9 +44,12 @@ RUN apk -U upgrade && \ git config --global user.email "opnfv-tech-discuss@lists.opnfv.org" && \ git config --global user.name "Functest" && \ patch -p1 < /tmp/Create-new-server-in-test_create_backup.patch && \ + patch -p1 < /tmp/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch && \ + patch -p1 < /tmp/Fix-str-to-str-comparison-in-live-migration-test.patch && \ git commit -a -m "Backport critical bugfixes" && \ rm ~/.gitconfig) && \ - rm -r /src/requirements/.git /src/functest/.git /tmp/9df662e053.patch \ + rm -r /src/requirements/.git /src/functest/.git /tmp/9df662e053.patch /tmp/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch \ + /tmp/Fix-str-to-str-comparison-in-live-migration-test.patch \ /tmp/Switch-to-threading.Thread-for-Rally-tasks.patch \ /tmp/Create-new-server-in-test_create_backup.patch && \ mkdir -p /etc/xtesting && \ diff --git a/docker/core/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch b/docker/core/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch new file mode 100644 index 000000000..df4e0e91e --- /dev/null +++ b/docker/core/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch @@ -0,0 +1,59 @@ +From 6a7db50238e8478ca2056901bf47f99356b282ea Mon Sep 17 00:00:00 2001 +From: jskunda +Date: Wed, 15 Nov 2023 15:03:12 +0100 +Subject: [PATCH 1/2] Fix of wrong parsing of flavour name and disk_over_commit + parameter + +In assertion of names of flavors there was wrongly used parameter +of name. Instead of server['original_name'] we should use +server['flavor']['original_name']. + +Also parameter disk_over_commit in function live_migrate_server +is available until version 2.25[1], so we should check microversion +before using this parameter. + +[1] - https://docs.openstack.org/api-ref/compute/#live-migrate-server-os-migratelive-action + +Change-Id: I8f03751815021ef6d335c1d90b3f183e178ce7dc +--- + .../scenario/test_network_advanced_server_ops.py | 16 +++++++++++++--- + 1 file changed, 13 insertions(+), 3 deletions(-) + +diff --git a/tempest/scenario/test_network_advanced_server_ops.py b/tempest/scenario/test_network_advanced_server_ops.py +index b48ac3c86..59a6575ed 100644 +--- a/tempest/scenario/test_network_advanced_server_ops.py ++++ b/tempest/scenario/test_network_advanced_server_ops.py +@@ -202,7 +202,7 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest): + self.assertEqual(resize_flavor, server['flavor']['id']) + else: + flavor = self.flavors_client.show_flavor(resize_flavor)['flavor'] +- self.assertEqual(flavor['name'], server['original_name']) ++ self.assertEqual(flavor['name'], server['flavor']['original_name']) + for key in ['ram', 'vcpus', 'disk']: + self.assertEqual(flavor[key], server['flavor'][key]) + self._wait_server_status_and_check_network_connectivity( +@@ -252,9 +252,19 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest): + block_migration = (CONF.compute_feature_enabled. + block_migration_for_live_migration) + old_host = self.get_host_for_server(server['id']) ++ ++ migration_kwargs = {'host': None, 'block_migration': block_migration} ++ ++ # 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 (CONF.compute.min_microversion is None or ++ CONF.compute.min_microversion < 2.25): ++ migration_kwargs['disk_over_commit'] = False ++ + self.admin_servers_client.live_migrate_server( +- server['id'], host=None, block_migration=block_migration, +- disk_over_commit=False) ++ server['id'], **migration_kwargs) ++ + waiters.wait_for_server_status(self.servers_client, + server['id'], 'ACTIVE') + +-- +2.51.0 + diff --git a/docker/core/Fix-str-to-str-comparison-in-live-migration-test.patch b/docker/core/Fix-str-to-str-comparison-in-live-migration-test.patch new file mode 100644 index 000000000..6e6dcea6f --- /dev/null +++ b/docker/core/Fix-str-to-str-comparison-in-live-migration-test.patch @@ -0,0 +1,44 @@ +From c39481191cf7c60e0741d825edc325522aba2a1c Mon Sep 17 00:00:00 2001 +From: Martin Kopec +Date: Thu, 18 Apr 2024 13:23:29 +0200 +Subject: [PATCH 2/2] Fix str to str comparison in live migration test + +The str to str comparison in the +test_server_connectivity_live_migration_compute uses a "<" +operation that does not work as intended. Let's fix that by using +the tempest module created for comparing string microversions. + +Change-Id: Id6d18c93e8637d797404a62a23d3fcc61208fd4c +(cherry picked from commit ba5cb852b8fb1b34a6ce31a4995b6635522f4381) +--- + tempest/scenario/test_network_advanced_server_ops.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tempest/scenario/test_network_advanced_server_ops.py b/tempest/scenario/test_network_advanced_server_ops.py +index 59a6575ed..d3175771c 100644 +--- a/tempest/scenario/test_network_advanced_server_ops.py ++++ b/tempest/scenario/test_network_advanced_server_ops.py +@@ -18,6 +18,7 @@ import testtools + from tempest.common import utils + from tempest.common import waiters + from tempest import config ++from tempest.lib.common import api_version_request + from tempest.lib import decorators + from tempest.scenario import manager + +@@ -258,8 +259,11 @@ class TestNetworkAdvancedServerOps(manager.NetworkScenarioTest): + # 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 ++ min_v = api_version_request.APIVersionRequest( ++ CONF.compute.min_microversion) ++ api_v = api_version_request.APIVersionRequest('2.25') + if (CONF.compute.min_microversion is None or +- CONF.compute.min_microversion < 2.25): ++ min_v < api_v): + migration_kwargs['disk_over_commit'] = False + + self.admin_servers_client.live_migrate_server( +-- +2.51.0 + diff --git a/upper-constraints.txt b/upper-constraints.txt index 9a5c86282..3a44fadea 100644 --- a/upper-constraints.txt +++ b/upper-constraints.txt @@ -8,7 +8,7 @@ xtesting===1.0.0 git+https://github.com/PyCQA/bandit@3d0824676974e7e2e9635c10bc4f12e261f1dbdf#egg=bandit bandit===1.7.0 ruamel.yaml.jinja2==0.2.2 --e git+https://opendev.org/openstack/tempest@30.0.0#egg=tempest +-e git+https://opendev.org/openstack/tempest@30.1.0#egg=tempest -e git+https://opendev.org/openstack/rally.git@3.4.0#egg=rally git+https://opendev.org/openstack/rally-openstack.git@2.3.0#egg=rally-openstack git+https://github.com/xrally/xrally-kubernetes.git@2ffa85af2bff3438b6b23034b6ec6ee1de481090#egg=xrally-kubernetes