Prometheus: Fix Azure authentication support (#44407) (#44861)

Re-adding back Azure authentication support to Prometheus datasource
after the datasource query logic was rewritten from plugin.json routes to
Go backend.

Ref #35857

(cherry picked from commit 85ea1a5d64)

Co-authored-by: Sergey Kostrukov <sekost@microsoft.com>
This commit is contained in:
Grot (@grafanabot)
2022-02-03 17:27:57 +01:00
committed by GitHub
co-authored by Sergey Kostrukov
parent ae33b9fce9
commit 2b516126cf
5 changed files with 127 additions and 12 deletions
+73
View File
@@ -0,0 +1,73 @@
package maputil
import "fmt"
func GetMap(obj map[string]interface{}, key string) (map[string]interface{}, error) {
if untypedValue, ok := obj[key]; ok {
if value, ok := untypedValue.(map[string]interface{}); ok {
return value, nil
} else {
err := fmt.Errorf("the field '%s' should be an object", key)
return nil, err
}
} else {
err := fmt.Errorf("the field '%s' should be set", key)
return nil, err
}
}
func GetBool(obj map[string]interface{}, key string) (bool, error) {
if untypedValue, ok := obj[key]; ok {
if value, ok := untypedValue.(bool); ok {
return value, nil
} else {
err := fmt.Errorf("the field '%s' should be a bool", key)
return false, err
}
} else {
err := fmt.Errorf("the field '%s' should be set", key)
return false, err
}
}
func GetBoolOptional(obj map[string]interface{}, key string) (bool, error) {
if untypedValue, ok := obj[key]; ok {
if value, ok := untypedValue.(bool); ok {
return value, nil
} else {
err := fmt.Errorf("the field '%s' should be a bool", key)
return false, err
}
} else {
// Value optional, not error
return false, nil
}
}
func GetString(obj map[string]interface{}, key string) (string, error) {
if untypedValue, ok := obj[key]; ok {
if value, ok := untypedValue.(string); ok {
return value, nil
} else {
err := fmt.Errorf("the field '%s' should be a string", key)
return "", err
}
} else {
err := fmt.Errorf("the field '%s' should be set", key)
return "", err
}
}
func GetStringOptional(obj map[string]interface{}, key string) (string, error) {
if untypedValue, ok := obj[key]; ok {
if value, ok := untypedValue.(string); ok {
return value, nil
} else {
err := fmt.Errorf("the field '%s' should be a string", key)
return "", err
}
} else {
// Value optional, not error
return "", nil
}
}