mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
				
	
	
		
			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
 | |
| }
 |