Fix live migration test 32/74932/9
authorCédric Ollivier <cedric.ollivier@orange.com>
Wed, 17 Sep 2025 12:40:05 +0000 (14:40 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Fri, 26 Sep 2025 10:26:20 +0000 (12:26 +0200)
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 <cedric.ollivier@orange.com>
docker/core/Dockerfile
docker/core/Fix-of-wrong-parsing-of-flavour-name-and-disk_over_c.patch [new file with mode: 0644]
docker/core/Fix-str-to-str-comparison-in-live-migration-test.patch [new file with mode: 0644]
upper-constraints.txt

index 29ce6a5..92347ff 100644 (file)
@@ -6,6 +6,8 @@ ARG OPENSTACK_TAG=unmaintained/yoga
 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 \
@@ -43,9 +45,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 (file)
index 0000000..df4e0e9
--- /dev/null
@@ -0,0 +1,59 @@
+From 6a7db50238e8478ca2056901bf47f99356b282ea Mon Sep 17 00:00:00 2001
+From: jskunda <jskunda@redhat.com>
+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 (file)
index 0000000..6e6dcea
--- /dev/null
@@ -0,0 +1,44 @@
+From c39481191cf7c60e0741d825edc325522aba2a1c Mon Sep 17 00:00:00 2001
+From: Martin Kopec <mkopec@redhat.com>
+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
+
index 9a5c862..3a44fad 100644 (file)
@@ -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