Chore: Making the plugin install commands respect the config parameter (#86578)
Currently the grafana cli plugin commands are not reacting to the --config parameter. This PR make it possible to use config to define the plugin endpoints via config as an alternative to providing the --repo flag.
This commit is contained in:
@@ -1,9 +1,14 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"slices"
|
||||
"strings"
|
||||
|
||||
"github.com/urfave/cli/v2"
|
||||
|
||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
|
||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/models"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
type CommandLine interface {
|
||||
@@ -52,7 +57,38 @@ func (c *ContextCommandLine) PluginDirectory() string {
|
||||
return c.String("pluginsDir")
|
||||
}
|
||||
|
||||
/*
|
||||
The plugin repository URL is determined in the following order:
|
||||
1. --repo flag value if it is specified
|
||||
2. --repo flag value if set via the environment variable called "GF_PLUGIN_REPO"
|
||||
3. --configOverrides parameter (only if --config is set too)
|
||||
4. --config parameter, from which we are looking at GrafanaComAPIURL setting
|
||||
5. fallback to default value which is https://grafana.com/api/plugins
|
||||
**/
|
||||
|
||||
func (c *ContextCommandLine) PluginRepoURL() string {
|
||||
// if --repo flag is set, use it
|
||||
// since the repo flag always has a value set by default we are checking in the flag lists if the --repo flag was provided at all.
|
||||
if slices.Contains(c.FlagNames(), "repo") {
|
||||
return c.String("repo")
|
||||
}
|
||||
|
||||
// if --config flag is set, try to get the GrafanaComAPIURL setting
|
||||
if c.ConfigFile() != "" {
|
||||
configOptions := strings.Split(c.String("configOverrides"), " ")
|
||||
cfg, err := setting.NewCfgFromArgs(setting.CommandLineArgs{
|
||||
Config: c.ConfigFile(),
|
||||
HomePath: c.HomePath(),
|
||||
Args: append(configOptions, c.Args().Slice()...),
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
logger.Debug("Could not parse config file", err)
|
||||
} else if cfg.GrafanaComAPIURL != "" {
|
||||
return cfg.GrafanaComAPIURL + "/plugins"
|
||||
}
|
||||
}
|
||||
// fallback to default value
|
||||
return c.String("repo")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user