Coverage for ocp_resources/rhmi.py: 0%
18 statements
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
« prev ^ index » next coverage.py v7.6.10, created at 2025-01-30 10:48 +0200
1from ocp_resources.resource import NamespacedResource
2from timeout_sampler import TimeoutExpiredError, TimeoutSampler, TimeoutWatch
5class RHMI(NamespacedResource):
6 """
7 RHMI custom resource created by Red Hat Openshift API Management (RHOAM)
8 https://github.com/integr8ly/integreatly-operator/blob/master/apis/v1alpha1/rhmi_types.go
9 """
11 api_group = NamespacedResource.ApiGroup.INTEGREATLY_ORG
13 def wait_for_stage_status_complete(self, timeout):
14 """
15 Wait until RHMI stage status is complete.
17 Args:
18 timeout (int): Time in seconds to wait for stage status.
20 Raises:
21 TimeoutExpiredError: If stage status is not complete.
23 """
24 # TODO: Replace complete_status_str with self.Status.COMPLETE once RHMI `complete` status starts with uppercase
25 complete_status_str = "complete"
26 self.logger.info(f"Wait for {self.kind} {self.name} stage status to be {complete_status_str}")
27 sample = None
28 try:
29 timeout_watcher = TimeoutWatch(timeout=timeout)
30 self.wait(timeout=timeout_watcher.remaining_time())
31 timeout_remain = timeout_watcher.remaining_time()
33 for sample in TimeoutSampler(
34 wait_timeout=timeout_remain,
35 sleep=1,
36 func=lambda: self.instance.status.stage,
37 ):
38 if sample == complete_status_str:
39 return
41 except TimeoutExpiredError:
42 self.logger.error(f"after {timeout} seconds, {self.kind} {self.name} stage status is {sample}")
43 raise