Skip to content

Commit c8287a9

Browse files
Update wait_for_status_success() call to look at both type and status for status.conditions (#2289) (#2300)
* status should return reason, when condition status is True * based on review comments and offline conversation with dev team * remove unnecessary code * undo retry * addressed review comment * address review comment * update based on reviews Co-authored-by: Debarati Basu-Nag <[email protected]>
1 parent 93b1bf5 commit c8287a9

File tree

1 file changed

+21
-14
lines changed

1 file changed

+21
-14
lines changed

ocp_resources/node_network_configuration_policy.py

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -375,21 +375,28 @@ def wait_for_status_success(self):
375375
failed_condition_reason = self.Conditions.Reason.FAILED_TO_CONFIGURE
376376
no_match_node_condition_reason = self.Conditions.Reason.NO_MATCHING_NODE
377377

378-
# if we get here too fast there are no conditions, we need to wait.
379-
self.wait_for_configuration_conditions_unknown_or_progressing()
380-
381-
samples = TimeoutSampler(wait_timeout=self.success_timeout, sleep=1, func=lambda: self.status)
382378
try:
383-
for sample in samples:
384-
if sample == self.Conditions.Reason.SUCCESSFULLY_CONFIGURED:
385-
self.logger.info(f"NNCP {self.name} configured Successfully")
386-
return sample
387-
388-
elif sample == no_match_node_condition_reason:
389-
raise NNCPConfigurationFailed(f"{self.name}. Reason: {no_match_node_condition_reason}")
390-
391-
elif sample == failed_condition_reason:
392-
self._process_failed_status(failed_condition_reason=failed_condition_reason)
379+
for sample in TimeoutSampler(
380+
wait_timeout=self.success_timeout,
381+
sleep=5,
382+
func=lambda: next(
383+
(
384+
condition
385+
for condition in self.instance.get("status", {}).get("conditions", [])
386+
if condition and condition["type"] == self.Conditions.Type.AVAILABLE
387+
),
388+
{},
389+
),
390+
):
391+
if sample:
392+
if sample["status"] == self.Condition.Status.TRUE:
393+
self.logger.info(f"NNCP {self.name} configured Successfully")
394+
return sample
395+
elif sample.get("reason") == no_match_node_condition_reason:
396+
raise NNCPConfigurationFailed(f"{self.name}. Reason: {no_match_node_condition_reason}")
397+
398+
elif sample.get("reason") == failed_condition_reason:
399+
self._process_failed_status(failed_condition_reason=failed_condition_reason)
393400

394401
except (TimeoutExpiredError, NNCPConfigurationFailed):
395402
self.logger.error(

0 commit comments

Comments
 (0)