mirror of
https://github.com/grafana/grafana.git
synced 2025-07-31 07:42:31 +08:00
fix: preinstall sync plugins have priority over preinstall_async plugin (#106016)
This commit is contained in:
@ -145,13 +145,15 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
|
|||||||
delete(preinstallPluginsAsync, disabledPlugin)
|
delete(preinstallPluginsAsync, disabledPlugin)
|
||||||
delete(preinstallPluginsSync, disabledPlugin)
|
delete(preinstallPluginsSync, disabledPlugin)
|
||||||
}
|
}
|
||||||
|
for _, plugin := range preinstallPluginsSync {
|
||||||
|
cfg.PreinstallPluginsSync = append(cfg.PreinstallPluginsSync, plugin)
|
||||||
|
// preinstallSync plugin has priority over preinstallAsync
|
||||||
|
delete(preinstallPluginsAsync, plugin.ID)
|
||||||
|
}
|
||||||
for _, plugin := range preinstallPluginsAsync {
|
for _, plugin := range preinstallPluginsAsync {
|
||||||
cfg.PreinstallPluginsAsync = append(cfg.PreinstallPluginsAsync, plugin)
|
cfg.PreinstallPluginsAsync = append(cfg.PreinstallPluginsAsync, plugin)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, plugin := range preinstallPluginsSync {
|
|
||||||
cfg.PreinstallPluginsSync = append(cfg.PreinstallPluginsSync, plugin)
|
|
||||||
}
|
|
||||||
installPluginsInAsync := pluginsSection.Key("preinstall_async").MustBool(true)
|
installPluginsInAsync := pluginsSection.Key("preinstall_async").MustBool(true)
|
||||||
if !installPluginsInAsync {
|
if !installPluginsInAsync {
|
||||||
for key, plugin := range preinstallPluginsAsync {
|
for key, plugin := range preinstallPluginsAsync {
|
||||||
|
@ -237,6 +237,13 @@ func Test_readPluginSettings(t *testing.T) {
|
|||||||
return plugins
|
return plugins
|
||||||
}(),
|
}(),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "when same plugin is defined in preinstall and preinstall_sync, should be only in preinstallSync",
|
||||||
|
rawInput: "plugin1",
|
||||||
|
rawInputSync: "plugin1",
|
||||||
|
expected: defaultPreinstallPluginsList,
|
||||||
|
expectedSync: []InstallPlugin{{ID: "plugin1"}},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tc := range tests {
|
for _, tc := range tests {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
|
Reference in New Issue
Block a user