From a586d36f731bc17350d61b98dc570a1ea21ddb04 Mon Sep 17 00:00:00 2001 From: Mohammed Naser Date: Fri, 14 Jun 2024 07:10:36 -0400 Subject: [PATCH] Revert functional test changes Signed-off-by: Mohammed Naser --- magnum_cluster_api/objects.py | 23 +++++++++++++++++++ .../tests/functional/conftest.py | 9 ++++++++ 2 files changed, 32 insertions(+) diff --git a/magnum_cluster_api/objects.py b/magnum_cluster_api/objects.py index 384afbfd..2e5507e8 100644 --- a/magnum_cluster_api/objects.py +++ b/magnum_cluster_api/objects.py @@ -20,6 +20,7 @@ import yaml from magnum import objects as magnum_objects from oslo_serialization import base64 +from tenacity import Retrying, retry_if_result, stop_after_delay, wait_fixed from magnum_cluster_api import exceptions @@ -39,6 +40,28 @@ def events(self): def observed_generation(self): return self.obj.get("status", {}).get("observedGeneration") + def wait_for_observed_generation_changed( + self, + existing_observed_generation: int = 0, + timeout: int = 10, + interval: int = 1, + ): + if existing_observed_generation == 0: + existing_observed_generation = self.observed_generation + + for attempt in Retrying( + retry=( + retry_if_result(lambda g: g == existing_observed_generation) + | retry_if_result(lambda g: g is None) + ), + stop=stop_after_delay(timeout), + wait=wait_fixed(interval), + ): + with attempt: + self.reload() + if not attempt.retry_state.outcome.failed: + attempt.retry_state.set_result(self.observed_generation) + class EndpointSlice(NamespacedAPIObject): version = "discovery.k8s.io/v1" diff --git a/magnum_cluster_api/tests/functional/conftest.py b/magnum_cluster_api/tests/functional/conftest.py index aa561a17..a59a9b92 100644 --- a/magnum_cluster_api/tests/functional/conftest.py +++ b/magnum_cluster_api/tests/functional/conftest.py @@ -14,6 +14,8 @@ import pytest +from magnum_cluster_api import objects + @pytest.fixture def cluster( @@ -27,6 +29,13 @@ def cluster( try: ubuntu_driver.create_cluster(context, cluster_obj, 60) + cluster_resource = objects.Cluster.for_magnum_cluster( + ubuntu_driver.k8s_api, cluster_obj + ) + cluster_resource.wait_for_observed_generation_changed( + existing_observed_generation=1 + ) + cluster_obj.save.assert_called_once() cluster_obj.save.reset_mock()