Skip to content

Commit f782a92

Browse files
committed
feat: remove time.sleep call
1 parent 00797e8 commit f782a92

File tree

1 file changed

+19
-4
lines changed

1 file changed

+19
-4
lines changed

tests/fixtures/inference.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import time
21
from typing import Generator, Any
32

43
import pytest
@@ -21,6 +20,8 @@
2120
QWEN_MODEL_NAME,
2221
LLMdInferenceSimConfig,
2322
)
23+
from timeout_sampler import retry
24+
2425
from utilities.inference_utils import create_isvc
2526
from utilities.infra import get_data_science_cluster, wait_for_dsc_status_ready
2627
from utilities.serving_runtime import ServingRuntimeFromTemplate
@@ -204,14 +205,28 @@ def patched_dsc_kserve_headed(
204205
admin_client, kserve_controller_manager_deployment: Deployment
205206
) -> Generator[DataScienceCluster, None, None]:
206207
"""Configure KServe Services to work in Headed mode i.e. using the Service port instead of the Pod port"""
208+
209+
def _kserve_last_transition_time(dsc_resource: DataScienceCluster) -> str:
210+
return next(filter(lambda x: x["type"] == "KserveReady", dsc_resource.instance.status["conditions"]))[
211+
"lastTransitionTime"
212+
]
213+
214+
@retry(wait_timeout=30, sleep=5)
215+
def _wait_for_headed_entities_status_ready(kserve_last_transition_time: str, dsc_resource: DataScienceCluster):
216+
if kserve_last_transition_time == _kserve_last_transition_time(dsc_resource):
217+
return False
218+
kserve_controller_manager_deployment.wait_for_replicas()
219+
wait_for_dsc_status_ready(dsc_resource=dsc_resource)
220+
return True
221+
207222
dsc = get_data_science_cluster(client=admin_client)
208223
if not dsc.instance.spec.components.kserve.rawDeploymentServiceConfig == "Headed":
209224
with ResourceEditor(
210225
patches={dsc: {"spec": {"components": {"kserve": {"rawDeploymentServiceConfig": "Headed"}}}}}
211226
):
212-
time.sleep(20) # noqa: FCN001
213-
kserve_controller_manager_deployment.wait_for_replicas()
214-
wait_for_dsc_status_ready(dsc_resource=dsc)
227+
_wait_for_headed_entities_status_ready(
228+
kserve_last_transition_time=_kserve_last_transition_time(dsc), dsc_resource=dsc
229+
)
215230
yield dsc
216231
else:
217232
LOGGER.info("DSC already configured for Headed mode")

0 commit comments

Comments
 (0)