diff --git a/ocp_resources/resource.py b/ocp_resources/resource.py index b96cacd3bd..86d21c92a8 100644 --- a/ocp_resources/resource.py +++ b/ocp_resources/resource.py @@ -971,27 +971,25 @@ def wait_for_status( **PROTOCOL_ERROR_EXCEPTION_DICT, **DEFAULT_CLUSTER_RETRY_EXCEPTIONS, }, - func=self.api.get, - field_selector=f"metadata.name=={self.name}", - namespace=self.namespace, + func=lambda: self.exists, ) current_status = None last_logged_status = None try: for sample in samples: - if sample.items: - sample_status = sample.items[0].status - if sample_status: - current_status = sample_status.phase - if current_status != last_logged_status: - last_logged_status = current_status - self.logger.info(f"Status of {self.kind} {self.name} is {current_status}") - - if current_status == status: - return - - if current_status == stop_status: - raise TimeoutExpiredError(f"Status of {self.kind} {self.name} is {current_status}") + if sample: + instance_dict = sample.to_dict() + current_status = instance_dict.get("status", {}).get("phase") + + if current_status != last_logged_status: + last_logged_status = current_status + self.logger.info(f"Status of {self.kind} {self.name} is {current_status}") + + if current_status == status: + return + + if current_status == stop_status: + raise TimeoutExpiredError(f"Status of {self.kind} {self.name} is {current_status}") except TimeoutExpiredError: if current_status: