mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Feature: Allow to skip plugin loading (#74840)
This commit is contained in:
committed by
GitHub
parent
05f01dee0c
commit
96b55ea37c
@@ -243,6 +243,7 @@ type Cfg struct {
|
||||
PluginAdminExternalManageEnabled bool
|
||||
PluginForcePublicKeyDownload bool
|
||||
PluginSkipPublicKeyDownload bool
|
||||
DisablePlugins []string
|
||||
|
||||
PluginsCDNURLTemplate string
|
||||
PluginLogBackendRequests bool
|
||||
|
||||
@@ -40,6 +40,14 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
|
||||
cfg.PluginsAllowUnsigned = append(cfg.PluginsAllowUnsigned, plug)
|
||||
}
|
||||
|
||||
disablePlugins := pluginsSection.Key("disable_plugins").MustString("")
|
||||
for _, plug := range strings.Split(disablePlugins, ",") {
|
||||
plug = strings.TrimSpace(plug)
|
||||
if plug != "" {
|
||||
cfg.DisablePlugins = append(cfg.DisablePlugins, plug)
|
||||
}
|
||||
}
|
||||
|
||||
cfg.PluginCatalogURL = pluginsSection.Key("plugin_catalog_url").MustString("https://grafana.com/grafana/plugins/")
|
||||
cfg.PluginAdminEnabled = pluginsSection.Key("plugin_admin_enabled").MustBool(true)
|
||||
cfg.PluginAdminExternalManageEnabled = pluginsSection.Key("plugin_admin_external_manage_enabled").MustBool(false)
|
||||
@@ -49,6 +57,8 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
|
||||
plug = strings.TrimSpace(plug)
|
||||
cfg.PluginCatalogHiddenPlugins = append(cfg.PluginCatalogHiddenPlugins, plug)
|
||||
}
|
||||
// Pull disablep plugins from the catalog
|
||||
cfg.PluginCatalogHiddenPlugins = append(cfg.PluginCatalogHiddenPlugins, cfg.DisablePlugins...)
|
||||
|
||||
// Plugins CDN settings
|
||||
cfg.PluginsCDNURLTemplate = strings.TrimRight(pluginsSection.Key("cdn_base_url").MustString(""), "/")
|
||||
|
||||
@@ -41,3 +41,20 @@ func TestPluginSettings(t *testing.T) {
|
||||
require.Equal(t, ps["plugin2"]["key3"], "value3")
|
||||
require.Equal(t, ps["plugin2"]["key4"], "value4")
|
||||
}
|
||||
|
||||
func Test_readPluginSettings(t *testing.T) {
|
||||
t.Run("should parse disable_plugins", func(t *testing.T) {
|
||||
cfg := NewCfg()
|
||||
sec, err := cfg.Raw.NewSection("plugins")
|
||||
require.NoError(t, err)
|
||||
_, err = sec.NewKey("disable_plugins", "plugin1,plugin2")
|
||||
require.NoError(t, err)
|
||||
_, err = sec.NewKey("plugin_catalog_hidden_plugins", "plugin3")
|
||||
require.NoError(t, err)
|
||||
|
||||
err = cfg.readPluginSettings(cfg.Raw)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, []string{"plugin1", "plugin2"}, cfg.DisablePlugins)
|
||||
require.Equal(t, []string{"plugin3", "plugin1", "plugin2"}, cfg.PluginCatalogHiddenPlugins)
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user