in pkg/integrations/integrations.go [67:98]
func Find(ctx context.Context, logger *zap.Logger, host ExtensionGetter, integrationName string) (Integration, error) {
if host == nil {
logger.Error("received nil host")
return nil, ErrNotConfigured
}
anyExtension := false
for eid, extension := range host.GetExtensions() {
finder, ok := extension.(Finder)
if !ok {
continue
}
anyExtension = true
integration, err := finder.FindIntegration(ctx, integrationName)
if errors.Is(ErrNotFound, err) {
continue
}
if err != nil {
logger.Error("integration finder failed",
zap.String("component", eid.String()),
zap.Error(err))
return nil, err
}
return integration, nil
}
if !anyExtension {
return nil, ErrNotConfigured
}
return nil, ErrNotFound
}