ci: Remove plugin hook handler
This commit is contained in:
parent
bc51cb05c0
commit
754aee8c3f
|
@ -46,7 +46,6 @@ var Flags struct {
|
||||||
GrpcHooksRetry int
|
GrpcHooksRetry int
|
||||||
GrpcHooksBackoff int
|
GrpcHooksBackoff int
|
||||||
HooksStopUploadCode int
|
HooksStopUploadCode int
|
||||||
PluginHookPath string
|
|
||||||
EnabledHooks []hooks.HookType
|
EnabledHooks []hooks.HookType
|
||||||
ShowVersion bool
|
ShowVersion bool
|
||||||
ExposeMetrics bool
|
ExposeMetrics bool
|
||||||
|
@ -98,7 +97,6 @@ func ParseFlags() {
|
||||||
flag.IntVar(&Flags.GrpcHooksRetry, "hooks-grpc-retry", 3, "Number of times to retry on a server error or network timeout")
|
flag.IntVar(&Flags.GrpcHooksRetry, "hooks-grpc-retry", 3, "Number of times to retry on a server error or network timeout")
|
||||||
flag.IntVar(&Flags.GrpcHooksBackoff, "hooks-grpc-backoff", 1, "Number of seconds to wait before retrying each retry")
|
flag.IntVar(&Flags.GrpcHooksBackoff, "hooks-grpc-backoff", 1, "Number of seconds to wait before retrying each retry")
|
||||||
flag.IntVar(&Flags.HooksStopUploadCode, "hooks-stop-code", 0, "Return code from post-receive hook which causes tusd to stop and delete the current upload. A zero value means that no uploads will be stopped")
|
flag.IntVar(&Flags.HooksStopUploadCode, "hooks-stop-code", 0, "Return code from post-receive hook which causes tusd to stop and delete the current upload. A zero value means that no uploads will be stopped")
|
||||||
flag.StringVar(&Flags.PluginHookPath, "hooks-plugin", "", "Path to a Go plugin for loading hook functions (only supported on Linux and macOS; highly EXPERIMENTAL and may BREAK in the future)")
|
|
||||||
flag.BoolVar(&Flags.ShowVersion, "version", false, "Print tusd version information")
|
flag.BoolVar(&Flags.ShowVersion, "version", false, "Print tusd version information")
|
||||||
flag.BoolVar(&Flags.ExposeMetrics, "expose-metrics", true, "Expose metrics about tusd usage")
|
flag.BoolVar(&Flags.ExposeMetrics, "expose-metrics", true, "Expose metrics about tusd usage")
|
||||||
flag.StringVar(&Flags.MetricsPath, "metrics-path", "/metrics", "Path under which the metrics endpoint will be accessible")
|
flag.StringVar(&Flags.MetricsPath, "metrics-path", "/metrics", "Path under which the metrics endpoint will be accessible")
|
||||||
|
|
|
@ -82,12 +82,6 @@ func SetupPreHooks(config *handler.Config) error {
|
||||||
MaxRetries: Flags.GrpcHooksRetry,
|
MaxRetries: Flags.GrpcHooksRetry,
|
||||||
Backoff: Flags.GrpcHooksBackoff,
|
Backoff: Flags.GrpcHooksBackoff,
|
||||||
}
|
}
|
||||||
} else if Flags.PluginHookPath != "" {
|
|
||||||
stdout.Printf("Using '%s' to load plugin for hooks", Flags.PluginHookPath)
|
|
||||||
|
|
||||||
hookHandler = &hooks.PluginHook{
|
|
||||||
Path: Flags.PluginHookPath,
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
package hooks
|
|
||||||
|
|
||||||
import (
|
|
||||||
"fmt"
|
|
||||||
"plugin"
|
|
||||||
|
|
||||||
"github.com/tus/tusd/pkg/handler"
|
|
||||||
)
|
|
||||||
|
|
||||||
type PluginHookHandler interface {
|
|
||||||
PreCreate(info handler.HookEvent) error
|
|
||||||
PostCreate(info handler.HookEvent) error
|
|
||||||
PostReceive(info handler.HookEvent) error
|
|
||||||
PostFinish(info handler.HookEvent) error
|
|
||||||
PostTerminate(info handler.HookEvent) error
|
|
||||||
PreFinish(info handler.HookEvent) error
|
|
||||||
}
|
|
||||||
|
|
||||||
type PluginHook struct {
|
|
||||||
Path string
|
|
||||||
|
|
||||||
handler PluginHookHandler
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h *PluginHook) Setup() error {
|
|
||||||
p, err := plugin.Open(h.Path)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
symbol, err := p.Lookup("TusdHookHandler")
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
handler, ok := symbol.(*PluginHookHandler)
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("hooks: could not cast TusdHookHandler from %s into PluginHookHandler interface", h.Path)
|
|
||||||
}
|
|
||||||
|
|
||||||
h.handler = *handler
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (h PluginHook) InvokeHook(typ HookType, info handler.HookEvent, captureOutput bool) ([]byte, int, error) {
|
|
||||||
var err error
|
|
||||||
switch typ {
|
|
||||||
case HookPostFinish:
|
|
||||||
err = h.handler.PostFinish(info)
|
|
||||||
case HookPostTerminate:
|
|
||||||
err = h.handler.PostTerminate(info)
|
|
||||||
case HookPostReceive:
|
|
||||||
err = h.handler.PostReceive(info)
|
|
||||||
case HookPostCreate:
|
|
||||||
err = h.handler.PostCreate(info)
|
|
||||||
case HookPreCreate:
|
|
||||||
err = h.handler.PreCreate(info)
|
|
||||||
case HookPreFinish:
|
|
||||||
err = h.handler.PreFinish(info)
|
|
||||||
default:
|
|
||||||
err = fmt.Errorf("hooks: unknown hook named %s", typ)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
|
||||||
return nil, 1, err
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil, 0, nil
|
|
||||||
}
|
|
Loading…
Reference in New Issue