mirror of https://github.com/knative/func.git
76 lines
2.1 KiB
Go
76 lines
2.1 KiB
Go
package mock
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
|
|
fn "knative.dev/func/pkg/functions"
|
|
)
|
|
|
|
type PipelinesProvider struct {
|
|
RunInvoked bool
|
|
RunFn func(fn.Function) (string, fn.Function, error)
|
|
RemoveInvoked bool
|
|
RemoveFn func(fn.Function) error
|
|
ConfigurePACInvoked bool
|
|
ConfigurePACFn func(fn.Function) error
|
|
RemovePACInvoked bool
|
|
RemovePACFn func(fn.Function) error
|
|
}
|
|
|
|
func NewPipelinesProvider() *PipelinesProvider {
|
|
return &PipelinesProvider{
|
|
RunFn: func(f fn.Function) (string, fn.Function, error) {
|
|
// the minimum necessary logic for a deployer, which should be
|
|
// confirmed by tests in the respective implementations, is to
|
|
// return the function with f.Deploy.* values set reflecting the
|
|
// now deployed state of the function.
|
|
if f.Namespace == "" && f.Deploy.Namespace == "" {
|
|
return "", f, errors.New("namespace required for initial deployment")
|
|
}
|
|
|
|
// fabricate that we deployed it to the newly requested namespace
|
|
if f.Namespace != "" {
|
|
f.Deploy.Namespace = f.Namespace
|
|
}
|
|
|
|
// fabricate that we deployed the requested image or generated
|
|
// it as needed
|
|
var err error
|
|
if f.Image != "" {
|
|
f.Deploy.Image = f.Image
|
|
} else {
|
|
if f.Deploy.Image, err = f.ImageName(); err != nil {
|
|
return "", f, err
|
|
}
|
|
}
|
|
|
|
return "", f, nil
|
|
|
|
},
|
|
RemoveFn: func(fn.Function) error { return nil },
|
|
ConfigurePACFn: func(fn.Function) error { return nil },
|
|
RemovePACFn: func(fn.Function) error { return nil },
|
|
}
|
|
}
|
|
|
|
func (p *PipelinesProvider) Run(ctx context.Context, f fn.Function) (string, fn.Function, error) {
|
|
p.RunInvoked = true
|
|
return p.RunFn(f)
|
|
}
|
|
|
|
func (p *PipelinesProvider) Remove(ctx context.Context, f fn.Function) error {
|
|
p.RemoveInvoked = true
|
|
return p.RemoveFn(f)
|
|
}
|
|
|
|
func (p *PipelinesProvider) ConfigurePAC(ctx context.Context, f fn.Function, metadata any) error {
|
|
p.ConfigurePACInvoked = true
|
|
return p.ConfigurePACFn(f)
|
|
}
|
|
|
|
func (p *PipelinesProvider) RemovePAC(ctx context.Context, f fn.Function, metadata any) error {
|
|
p.RemovePACInvoked = true
|
|
return p.RemovePACFn(f)
|
|
}
|