Merge branch 'main' into giuseppe/enable-tracing-feature-flag

This commit is contained in:
Giuseppe Guerra committed 2024-01-09 16:53:33 +01:00
commit 0d339c8ab6
74 files changed
+2709 -1068

No files matched your search

+1 -1
View File
@@ -51,7 +51,7 @@ func (s *Service) externalPluginSources() []plugins.PluginSource {
var pluginDirs []string
for _, dir := range d {
if dir.IsDir() {
if dir.IsDir() || dir.Type()&os.ModeSymlink == os.ModeSymlink {
pluginDirs = append(pluginDirs, filepath.Join(pluginsPath, dir.Name()))
}
}
@@ -78,4 +78,41 @@ func TestSources_List(t *testing.T) {
require.False(t, exists)
require.Equal(t, plugins.Signature{}, sig)
})
t.Run("Plugin sources are populated with symbolic links", func(t *testing.T) {
testdata, err := filepath.Abs("../testdata")
require.NoError(t, err)
cfg := &setting.Cfg{
StaticRootPath: testdata,
PluginsPath: filepath.Join(testdata, "symbolic-plugin-dirs"),
BundledPluginsPath: filepath.Join(testdata, "unsigned-panel"),
}
s := ProvideService(cfg)
ctx := context.Background()
srcs := s.List(ctx)
uris := map[plugins.Class]map[string]struct{}{}
for _, s := range srcs {
class := s.PluginClass(ctx)
if _, exists := uris[class]; !exists {
uris[class] = map[string]struct{}{}
}
for _, uri := range s.PluginURIs(ctx) {
uris[class][uri] = struct{}{}
}
}
require.Equal(t, uris[plugins.ClassCore], map[string]struct{}{
filepath.Join(testdata, "app", "plugins", "datasource"): {},
filepath.Join(testdata, "app", "plugins", "panel"): {},
}, "should include core plugins")
require.Equal(t, uris[plugins.ClassBundled], map[string]struct{}{
filepath.Join(testdata, "unsigned-panel"): {},
}, "should include bundle plugin")
require.Equal(t, uris[plugins.ClassExternal], map[string]struct{}{
filepath.Join(testdata, "symbolic-plugin-dirs", "plugin"): {},
}, "should include external symlinked plugin")
})
}