mirror of
https://github.com/helm/helm.git
synced 2026-05-28 04:35:48 -04:00
status function
Signed-off-by: Austin Abro <AustinAbro321@gmail.com>
This commit is contained in:
parent
b8bdcc3a2b
commit
ac9012577a
2 changed files with 19 additions and 34 deletions
|
|
@ -69,22 +69,7 @@ func (w *statusWaiter) waitForDelete(ctx context.Context, resourceList ResourceL
|
|||
}
|
||||
eventCh := w.sw.Watch(cancelCtx, resources, watcher.Options{})
|
||||
statusCollector := collector.NewResourceStatusCollector(resources)
|
||||
done := statusCollector.ListenWithObserver(eventCh, collector.ObserverFunc(
|
||||
func(statusCollector *collector.ResourceStatusCollector, _ event.Event) {
|
||||
rss := []*event.ResourceStatus{}
|
||||
for _, rs := range statusCollector.ResourceStatuses {
|
||||
if rs == nil {
|
||||
continue
|
||||
}
|
||||
rss = append(rss, rs)
|
||||
}
|
||||
desired := status.NotFoundStatus
|
||||
if aggregator.AggregateStatus(rss, desired) == desired {
|
||||
cancel()
|
||||
return
|
||||
}
|
||||
}),
|
||||
)
|
||||
done := statusCollector.ListenWithObserver(eventCh, statusObserver(cancel, status.NotFoundStatus))
|
||||
<-done
|
||||
|
||||
if statusCollector.Error != nil {
|
||||
|
|
@ -140,22 +125,7 @@ func (w *statusWaiter) wait(ctx context.Context, resourceList ResourceList, wait
|
|||
}
|
||||
eventCh := w.sw.Watch(cancelCtx, resources, watcher.Options{})
|
||||
statusCollector := collector.NewResourceStatusCollector(resources)
|
||||
done := statusCollector.ListenWithObserver(eventCh, collector.ObserverFunc(
|
||||
func(statusCollector *collector.ResourceStatusCollector, _ event.Event) {
|
||||
rss := []*event.ResourceStatus{}
|
||||
for _, rs := range statusCollector.ResourceStatuses {
|
||||
if rs == nil {
|
||||
continue
|
||||
}
|
||||
rss = append(rss, rs)
|
||||
}
|
||||
desired := status.CurrentStatus
|
||||
if aggregator.AggregateStatus(rss, desired) == desired {
|
||||
cancel()
|
||||
return
|
||||
}
|
||||
}),
|
||||
)
|
||||
done := statusCollector.ListenWithObserver(eventCh, statusObserver(cancel, status.CurrentStatus))
|
||||
<-done
|
||||
|
||||
if statusCollector.Error != nil {
|
||||
|
|
@ -177,3 +147,19 @@ func (w *statusWaiter) wait(ctx context.Context, resourceList ResourceList, wait
|
|||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func statusObserver(cancel context.CancelFunc, desired status.Status) collector.ObserverFunc {
|
||||
return func(statusCollector *collector.ResourceStatusCollector, _ event.Event) {
|
||||
rss := []*event.ResourceStatus{}
|
||||
for _, rs := range statusCollector.ResourceStatuses {
|
||||
if rs == nil {
|
||||
continue
|
||||
}
|
||||
rss = append(rss, rs)
|
||||
}
|
||||
if aggregator.AggregateStatus(rss, desired) == desired {
|
||||
cancel()
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ package kube // import "helm.sh/helm/v3/pkg/kube"
|
|||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"log"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
|
|
@ -246,7 +245,7 @@ func TestStatusWait(t *testing.T) {
|
|||
}
|
||||
kwaiter := statusWaiter{
|
||||
sw: statusWatcher,
|
||||
log: log.Printf,
|
||||
log: t.Logf,
|
||||
}
|
||||
|
||||
resourceList := ResourceList{}
|
||||
|
|
|
|||
Loading…
Reference in a new issue