Add plugin's support for provider
Co-authored-by: Julien Salleyron <julien@traefik.io>
This commit is contained in:
parent
de2437cfec
commit
63ef0f1cee
24 changed files with 928 additions and 116 deletions
|
@ -347,12 +347,12 @@ func (b *Builder) buildConstructor(ctx context.Context, middlewareName string) (
|
|||
|
||||
pluginType, rawPluginConfig, err := findPluginConfig(config.Plugin)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("plugin: %w", err)
|
||||
}
|
||||
|
||||
plug, err := b.pluginBuilder.Build(pluginType, rawPluginConfig, middlewareName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("plugin: %w", err)
|
||||
}
|
||||
|
||||
middleware = func(next http.Handler) (http.Handler, error) {
|
||||
|
|
|
@ -15,7 +15,7 @@ type PluginsBuilder interface {
|
|||
|
||||
func findPluginConfig(rawConfig map[string]dynamic.PluginConf) (string, map[string]interface{}, error) {
|
||||
if len(rawConfig) != 1 {
|
||||
return "", nil, errors.New("plugin: invalid configuration: no configuration or too many plugin definition")
|
||||
return "", nil, errors.New("invalid configuration: no configuration or too many plugin definition")
|
||||
}
|
||||
|
||||
var pluginType string
|
||||
|
@ -27,11 +27,11 @@ func findPluginConfig(rawConfig map[string]dynamic.PluginConf) (string, map[stri
|
|||
}
|
||||
|
||||
if pluginType == "" {
|
||||
return "", nil, errors.New("plugin: missing plugin type")
|
||||
return "", nil, errors.New("missing plugin type")
|
||||
}
|
||||
|
||||
if len(rawPluginConfig) == 0 {
|
||||
return "", nil, fmt.Errorf("plugin: missing plugin configuration: %s", pluginType)
|
||||
return "", nil, fmt.Errorf("missing plugin configuration: %s", pluginType)
|
||||
}
|
||||
|
||||
return pluginType, rawPluginConfig, nil
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue