a503fa8673
Signed-off-by: Matt Moyer <moyerm@vmware.com>
45 lines
808 B
Go
45 lines
808 B
Go
/*
|
|
Copyright 2020 VMware, Inc.
|
|
SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
package controllerlib
|
|
|
|
import (
|
|
"context"
|
|
|
|
"k8s.io/client-go/tools/events"
|
|
)
|
|
|
|
var _ Syncer = SyncFunc(nil)
|
|
|
|
type Syncer interface {
|
|
Sync(ctx Context) error
|
|
}
|
|
|
|
type SyncFunc func(ctx Context) error
|
|
|
|
func (s SyncFunc) Sync(ctx Context) error {
|
|
return s(ctx)
|
|
}
|
|
|
|
type Context struct {
|
|
Context context.Context
|
|
Name string
|
|
Key Key
|
|
Queue Queue
|
|
Recorder events.EventRecorder
|
|
}
|
|
|
|
type Key struct {
|
|
Namespace string
|
|
Name string
|
|
|
|
// TODO determine if it makes sense to add a field like:
|
|
// Extra interface{}
|
|
// This would allow a custom ParentFunc to pass extra data through to the Syncer
|
|
// The boxed type would have to be comparable (i.e. usable as a map key)
|
|
}
|
|
|
|
type SyncWrapperFunc func(syncer Syncer) Syncer
|