Fix pod wait timeouts.
Previously, a timer had been reset on every message received through the pod channel.
This commit is contained in:
parent
83c8d6c419
commit
793defef72
|
|
@ -184,6 +184,7 @@ func (c *Cluster) getTeamMembers() ([]string, error) {
|
|||
}
|
||||
|
||||
func (c *Cluster) waitForPodLabel(podEvents chan spec.PodEvent, role *PostgresRole) error {
|
||||
timeout := time.After(c.OpConfig.PodLabelWaitTimeout)
|
||||
for {
|
||||
select {
|
||||
case podEvent := <-podEvents:
|
||||
|
|
@ -196,20 +197,21 @@ func (c *Cluster) waitForPodLabel(podEvents chan spec.PodEvent, role *PostgresRo
|
|||
} else if *role == podRole {
|
||||
return nil
|
||||
}
|
||||
case <-time.After(c.OpConfig.PodLabelWaitTimeout):
|
||||
case <-timeout:
|
||||
return fmt.Errorf("pod label wait timeout")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Cluster) waitForPodDeletion(podEvents chan spec.PodEvent) error {
|
||||
timeout := time.After(c.OpConfig.PodDeletionWaitTimeout)
|
||||
for {
|
||||
select {
|
||||
case podEvent := <-podEvents:
|
||||
if podEvent.EventType == spec.EventDelete {
|
||||
return nil
|
||||
}
|
||||
case <-time.After(c.OpConfig.PodDeletionWaitTimeout):
|
||||
case <-timeout:
|
||||
return fmt.Errorf("pod deletion wait timeout")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue