mirror of
https://github.com/grafana/grafana.git
synced 2024-11-25 10:20:29 -06:00
28 lines
733 B
Go
28 lines
733 B
Go
package plugins
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// Get the default API group name for from a plugin ID
|
|
// NOTE: this is a work in progress, and may change without notice
|
|
func GetDatasourceGroupNameFromPluginID(pluginId string) (string, error) {
|
|
if pluginId == "" {
|
|
return "", fmt.Errorf("bad pluginID (empty)")
|
|
}
|
|
parts := strings.Split(pluginId, "-")
|
|
if len(parts) == 1 {
|
|
return fmt.Sprintf("%s.datasource.grafana.app", parts[0]), nil
|
|
}
|
|
|
|
last := parts[len(parts)-1]
|
|
if last != "datasource" {
|
|
return "", fmt.Errorf("bad pluginID (%s)", pluginId)
|
|
}
|
|
if parts[0] == "grafana" {
|
|
parts = parts[1:] // strip the first value
|
|
}
|
|
return fmt.Sprintf("%s.datasource.grafana.app", strings.Join(parts[:len(parts)-1], "-")), nil
|
|
}
|