Plugins: Do not fail bootstrap stage if single decorate step fails (#73147)
* don't fail all if decorate step fails * fix casing * include err too * cover pluginsintegration too
This commit is contained in:
@@ -69,14 +69,22 @@ func (b *Bootstrap) Bootstrap(ctx context.Context, src plugins.PluginSource, fou
|
||||
return ps, nil
|
||||
}
|
||||
|
||||
bootstrappedPlugins := make([]*plugins.Plugin, 0, len(ps))
|
||||
for _, p := range ps {
|
||||
for _, decorator := range b.decorateSteps {
|
||||
p, err = decorator(ctx, p)
|
||||
var ip *plugins.Plugin
|
||||
stepFailed := false
|
||||
for _, decorate := range b.decorateSteps {
|
||||
ip, err = decorate(ctx, p)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
stepFailed = true
|
||||
b.log.Error("Could not decorate plugin", "pluginId", p.ID, "error", err)
|
||||
break
|
||||
}
|
||||
}
|
||||
if !stepFailed {
|
||||
bootstrappedPlugins = append(bootstrappedPlugins, ip)
|
||||
}
|
||||
}
|
||||
|
||||
return ps, nil
|
||||
return bootstrappedPlugins, nil
|
||||
}
|
||||
|
||||
@@ -49,12 +49,12 @@ func (c *DefaultConstructor) Construct(ctx context.Context, src plugins.PluginSo
|
||||
for _, bundle := range bundles {
|
||||
sig, err := c.signatureCalculator.Calculate(ctx, src, bundle.Primary)
|
||||
if err != nil {
|
||||
c.log.Warn("Could not calculate plugin signature state", "pluginID", bundle.Primary.JSONData.ID, "err", err)
|
||||
c.log.Warn("Could not calculate plugin signature state", "pluginId", bundle.Primary.JSONData.ID, "error", err)
|
||||
continue
|
||||
}
|
||||
plugin, err := c.pluginFactoryFunc(bundle.Primary, src.PluginClass(ctx), sig)
|
||||
if err != nil {
|
||||
c.log.Error("Could not create primary plugin base", "pluginID", bundle.Primary.JSONData.ID, "err", err)
|
||||
c.log.Error("Could not create primary plugin base", "pluginId", bundle.Primary.JSONData.ID, "error", err)
|
||||
continue
|
||||
}
|
||||
res = append(res, plugin)
|
||||
@@ -63,7 +63,7 @@ func (c *DefaultConstructor) Construct(ctx context.Context, src plugins.PluginSo
|
||||
for _, child := range bundle.Children {
|
||||
cp, err := c.pluginFactoryFunc(*child, plugin.Class, sig)
|
||||
if err != nil {
|
||||
c.log.Error("Could not create child plugin base", "pluginID", child.JSONData.ID, "err", err)
|
||||
c.log.Error("Could not create child plugin base", "pluginId", child.JSONData.ID, "error", err)
|
||||
continue
|
||||
}
|
||||
cp.Parent = plugin
|
||||
|
||||
Reference in New Issue
Block a user