...

Source file src/sigs.k8s.io/cli-utils/pkg/kstatus/watcher/blind_status_watcher.go

Documentation: sigs.k8s.io/cli-utils/pkg/kstatus/watcher

     1  // Copyright 2022 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package watcher
     5  
     6  import (
     7  	"context"
     8  
     9  	"sigs.k8s.io/cli-utils/pkg/kstatus/polling/event"
    10  	"sigs.k8s.io/cli-utils/pkg/object"
    11  )
    12  
    13  // BlindStatusWatcher sees nothing.
    14  // BlindStatusWatcher sends no update or error events.
    15  // BlindStatusWatcher waits patiently to be cancelled.
    16  // BlindStatusWatcher implements the StatusWatcher interface.
    17  type BlindStatusWatcher struct{}
    18  
    19  var _ StatusWatcher = BlindStatusWatcher{}
    20  
    21  // Watch nothing. See no changes.
    22  func (w BlindStatusWatcher) Watch(ctx context.Context, _ object.ObjMetadataSet, _ Options) <-chan event.Event {
    23  	doneCh := ctx.Done()
    24  	eventCh := make(chan event.Event)
    25  	go func() {
    26  		// Send SyncEvent immediately.
    27  		eventCh <- event.Event{Type: event.SyncEvent}
    28  		// Block until the context is cancelled.
    29  		<-doneCh
    30  		// Signal to the caller there will be no more events.
    31  		close(eventCh)
    32  	}()
    33  	return eventCh
    34  }
    35  

View as plain text