Preinstall: Allow to set a download URL (#96535)
This commit is contained in:
@@ -543,6 +543,7 @@ type UnifiedStorageConfig struct {
|
||||
type InstallPlugin struct {
|
||||
ID string `json:"id"`
|
||||
Version string `json:"version"`
|
||||
URL string `json:"url,omitempty"`
|
||||
}
|
||||
|
||||
// AddChangePasswordLink returns if login form is disabled or not since
|
||||
|
||||
@@ -29,7 +29,7 @@ func extractPluginSettings(sections []*ini.Section) PluginSettings {
|
||||
var (
|
||||
defaultPreinstallPlugins = map[string]InstallPlugin{
|
||||
// Default preinstalled plugins
|
||||
"grafana-lokiexplore-app": {"grafana-lokiexplore-app", ""},
|
||||
"grafana-lokiexplore-app": {"grafana-lokiexplore-app", "", ""},
|
||||
}
|
||||
)
|
||||
|
||||
@@ -58,11 +58,16 @@ func (cfg *Cfg) readPluginSettings(iniFile *ini.File) error {
|
||||
for _, plugin := range rawInstallPlugins {
|
||||
parts := strings.Split(plugin, "@")
|
||||
id := parts[0]
|
||||
v := ""
|
||||
if len(parts) == 2 {
|
||||
v = parts[1]
|
||||
version := ""
|
||||
url := ""
|
||||
if len(parts) > 1 {
|
||||
version = parts[1]
|
||||
if len(parts) > 2 {
|
||||
url = parts[2]
|
||||
}
|
||||
}
|
||||
preinstallPlugins[id] = InstallPlugin{id, v}
|
||||
|
||||
preinstallPlugins[id] = InstallPlugin{id, version, url}
|
||||
}
|
||||
// Remove from the list the plugins that have been disabled
|
||||
for _, disabledPlugin := range cfg.DisablePlugins {
|
||||
|
||||
@@ -120,12 +120,12 @@ func Test_readPluginSettings(t *testing.T) {
|
||||
{
|
||||
name: "should add the default preinstalled plugin and the one defined",
|
||||
rawInput: "plugin1",
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", ""}),
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", "", ""}),
|
||||
},
|
||||
{
|
||||
name: "should add the default preinstalled plugin and the one defined with version",
|
||||
rawInput: "plugin1@1.0.0",
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", "1.0.0"}),
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", "1.0.0", ""}),
|
||||
},
|
||||
{
|
||||
name: "it should remove the disabled plugin",
|
||||
@@ -149,7 +149,17 @@ func Test_readPluginSettings(t *testing.T) {
|
||||
name: "should mark preinstall as sync",
|
||||
rawInput: "plugin1",
|
||||
disableAsync: true,
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", ""}),
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", "", ""}),
|
||||
},
|
||||
{
|
||||
name: "should parse a plugin with version and URL",
|
||||
rawInput: "plugin1@1.0.1@https://example.com/plugin1.tar.gz",
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", "1.0.1", "https://example.com/plugin1.tar.gz"}),
|
||||
},
|
||||
{
|
||||
name: "should parse a plugin with URL",
|
||||
rawInput: "plugin1@@https://example.com/plugin1.tar.gz",
|
||||
expected: append(defaultPreinstallPluginsList, InstallPlugin{"plugin1", "", "https://example.com/plugin1.tar.gz"}),
|
||||
},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
|
||||
Reference in New Issue
Block a user